JAX-RS 请求 body 中缺少上传的文件,为什么会返回状态码 415?
Why is status code 415 returned when an uploaded file is missing in a JAX-RS request body?
我正在创建一个手机 API,它接受 headers 中的一些参数和 body 中的文件(可选)作为多部分。现在,当我尝试在存在文件的情况下提交时,它工作得很好,但是当请求中不存在 文件时,它会显示 415 错误 。
下面是代码请求(为了提交我在 Chrome 中使用 Postman)
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@HeaderParam("uid") String userId,
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
// save file to disk
return Response.status(200).entity("Done").build();
}
这是一个基于 JAX-RS/Jersey 的解决方案,取自 MKYONG 教程。如果需要更多信息,请告诉我。
您可以像下面这样创建一个重载方法,它不将文件详细信息作为输入并且没有 @Consumes(MediaType.MULTIPART_FORM_DATA)
。
根据JAX-RS documentation,通过@Consumes
指定的请求的内容类型在解析要调用的重载方法中起作用。
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(@HeaderParam("uid") String userId) {
return Response.status(200).entity("Done").build();
}
我正在创建一个手机 API,它接受 headers 中的一些参数和 body 中的文件(可选)作为多部分。现在,当我尝试在存在文件的情况下提交时,它工作得很好,但是当请求中不存在 文件时,它会显示 415 错误 。 下面是代码请求(为了提交我在 Chrome 中使用 Postman)
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@HeaderParam("uid") String userId,
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
// save file to disk
return Response.status(200).entity("Done").build();
}
这是一个基于 JAX-RS/Jersey 的解决方案,取自 MKYONG 教程。如果需要更多信息,请告诉我。
您可以像下面这样创建一个重载方法,它不将文件详细信息作为输入并且没有 @Consumes(MediaType.MULTIPART_FORM_DATA)
。
根据JAX-RS documentation,通过@Consumes
指定的请求的内容类型在解析要调用的重载方法中起作用。
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(@HeaderParam("uid") String userId) {
return Response.status(200).entity("Done").build();
}