我正在尝试建立一个后端,用于发送两个 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/