为什么在JAX-RS请求正文中缺少上载文件时会返回状态代码415?

时间:2015-08-08 19:16:42

标签: java rest jax-rs http-status-code-415

我正在创建一个移动API,它接受标题中的一些参数和作为多个部分的正文中的文件(可选)。现在,当我尝试使用文件提交时,它可以正常工作,但当请求中没有文件时,它会显示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教程。如果需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

您可以创建一个如下所示的重载方法,该方法不会将文件详细信息作为输入,也不会有@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();
}