rest - Jersey Grizzly Rest如何提取“表单数据”参数
考虑以下功能:
@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-urlencoded
和multipart/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
本文经用户投稿或网站收集转载,如有侵权请联系本站。