java - Spring boot POST PDF内容类型'application/pdf不支持

标签 java rest spring-boot

我正在尝试建立一个后端,用于发送两个 PDF 并使用它们。为此,我必须实现 REST 服务,但我无法接收它们。

后期映射

@PostMapping("/post")
    CompareJob compareJob(@RequestBody File file1) {
        System.out.print("Received File: " + file1);
        CompareJob compareJob = new CompareJob();
        return compareJob;
    }

为了执行 POST 请求,我使用 Postman,其中设置了以下内容:

标题 -> 内容类型:application/pdf

正文 -> 二进制:testPDF.pdf

这是我得到的回复:

{
    "timestamp": "2019-03-12T13:55:12.898+0000",
    "status": 415,
    "error": "Unsupported Media Type",
    "message": "Content type 'application/pdf;charset=UTF-8' not supported",
    "path": "/post"
}

我对 REST 服务非常陌生,非常感谢您提供一些错误提示。

感谢您的帮助!

根据amin10043建议进行编辑:

@PostMapping("/post")
    CompareJob compareJob(@RequestParam("file1") MultipartFile file1) {
        System.out.print("Received File: " + file1);
        CompareJob compareJob = new CompareJob();
        return compareJob;
    }

读完后,我不应该检查 Postman 中的 Content-Type,我收到以下回复:

{
    "timestamp": "2019-03-12T14:37:52.765+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Current request is not a multipart request",
    "path": "/post"
}

我的错误是我将 pdf 作为二进制文件上传,而不是在 postman 中作为表单数据上传。必须这样设置:https://snag.gy/H4w5S8.jpg

最佳答案

如果你想上传文件,最好使用Multipartfile ,另外请将您的输入参数从 @RequesBody 更改为 @RequestParam("yourparameter name"),这样 postman 就可以向请求添加正确的 header ,并且应该可以工作。

关于java - Spring boot POST PDF内容类型'application/pdf不支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55123256/

相关文章:

rest - 最简单的服务器到服务器身份验证

java - Mockito - doReturn() 和 when() 之间的区别

java - fragment 自行重新实例化并添加到 Activity 中

c# - 无法反序列化 json 足球数据

javascript - 将 Blob 数据作为 MultipartFile 从 Angular6 客户端发送到 Spring Boot API

Spring-boot 配置 client-auth=需要辅助 SSL 监听器

java - 使用thymeleaf从URL访问数据到java?

java - 恢复 Activity 时 FPS 降低

java - 我如何以编程方式获取 Hadoop 在 Web 界面中显示的所有作业跟踪器和任务跟踪器信息?

javascript - JS : How to change the value of an object's property according to that object attribute