使用 postman 传递 binary 类型的图片到后端接口遇到的坑
使用 psotman 传 binary 类型图片报错:
-2024-12-04 [http-nio-9090-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver =======
Resolved [org.springframework.http.converter.HttpMessageNotReadableException:
Required request body is missing: public com.tyler.common.entity.Result
com.tyler.web.controller.FileController.entityExtraction2(byte[]) throws java.io.IOException]
postman 收到响应:
{
"timestamp": "2024-12-04T13:01:33.658+00:00",
"status": 400,
"error": "Bad Request",
"path": "/xxx/xxx"
}
原因:
我一开始用 postman 请求是没问题的,但当我复制一个请求出来时,问题就出现如上述所说的错误。
通过观察 postman 的 控制台 (console), 查看 Request Headers, 发现没有传递 Content-Type 这个 header。
然后看到 header 默认就有 Content-Type 这个 header , 但是发送请求的时候没有携带上。
于是我自己添加了一个 Content-Type 这个 header , 覆盖掉默认的,然后可以看到请求的时候携带上了 Content-Type , 但是请求依然失败。
仔细观察,虽然鞋带上了 Content-Type, 但是可以发现 Content-Length 为 0 个长度。
这总不能我自己再写一个 Content-Length 了吧。
于是想到将这个图片删掉,再重新上传一张。
再次发送请求,可以看到携带上了 Content-Type, 并且 Content-Length 也有值了。
总结:
就是使用 postman 的 Duplicate (复制) 功能导致的坑,解决方法就是把图片删掉重新上传。
注意:不仅使用 Duplicate 的时候会出现这样的问题,当你移动了你的请求文件的时候也会出现这样的问题,比如你将这个请求移动到另一个文件夹。
扩展:
那么后端接口怎么接收这个请求呢?请参考这篇文章 - 使用 Postman 上传二进制类型的图片到后端接口写法
原文地址:https://blog.csdn.net/z284747/article/details/144249906
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!