自学内容网 自学内容网

使用 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)!