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

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

我正在创建一个移动 API,它接受 header 中的一些参数和正文中的文件(可选)作为多部分。现在,当我尝试在存在文件的情况下提交时,它工作得很好,但是当请求中不存在文件时,它会显示 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 ,请求的content-type,通过@Consumes指定,在解析要调用的重载方法中发挥作用。

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

    return Response.status(200).entity("Done").build();
}

关于java - 当 JAX-RS 请求正文中缺少上传文件时,为什么会返回状态代码 415?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897611/

相关文章:

cross-domain - Camel JAX-RS 和跨域请求

java - 当存在没有预期返回类型的返回路径时,不会出现编译时错误

WSO2 API Manager 2.6.0 的 RESTful API 在 POSTMAN 中不起作用

rest - HTTP 状态 202 - 如何提供有关异步请求完成的信息?

rest - RESTful 中的 "ful"是什么意思?

rest - 具有客户端缓存的 JAX-RS 框架

java - JPA 和安卓

java - 我想,试图获得重心位置?

java - 无法读取 .txt 文件。 Try Catch 异常结束程序

jax-rs - 如何在 Restful Jax-rs 中发送图像