2

我正在创建一个移动 API,它接受标头中的一些参数和正文中的文件(可选)作为多部分。现在,当我尝试在文件存在的情况下提交时,它工作得很好,但是当请求中不存在文件时,它会显示 415 error。下面是代码请求(提交我在 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 教程。如果需要更多信息,请告诉我。

4

1 回答 1

2

您可以创建一个像下面这样的重载方法,它不会将文件详细信息作为输入,也不需要@Consumes(MediaType.MULTIPART_FORM_DATA)它。

根据JAX-RS 文档,通过 指定的请求的内容类型@Consumes在解析要调用的重载方法中发挥作用。

@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(@HeaderParam("uid") String userId) {

    return Response.status(200).entity("Done").build();
}
于 2015-08-08T19:33:55.673 回答