rest - Jersey Grizzly Rest如何提取“表单数据”参数

rest - Jersey Grizzly Rest如何提取“表单数据”参数,第1张

考虑以下功能:

@POST
    @Path("/handle_response")
    @Produces(MediaType.APPLICATION_JSON)
    public ResponseJsonBean handle(@FormParam("first") Integer first, @FormParam("second") Integer second) 
    {
        ////// bla bla
    }

当我发出POST x-www-form-urlencoded请求时,会调用上面的函数。但是当我发出POST表单数据请求时,不会调用该函数。为什么在后一种情况下没有调用它?以及如何制作适用于后一种要求的功能。

最佳答案:

1 个答案:

答案 0 :(得分:2)

是的application/x-www-form-urlencodedmultipart/form-data是完全不同的类型和格式。通过发送类型发现读取请求的正确提供程序。

对于多部分支持,您应该添加Jersey多部分依赖

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>${jersey2.version}</version>
</dependency>

然后在您的资源方法中执行类似

的操作
@POST
@Path("/upload")
@Produces(MediaType.APPLICATION_JSON)
@Consumes({MediaType.MULTIPART_FORM_DATA})
public Response uploadFile(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition cdh) throws Exception{
}

另见:

  • An example with the client side also
  • Jersey Multipart Documentation
  • In case you are using Jersey 1.x
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复