Postman通过Content-Type响应头、Body视图表现及“Send and download”按钮判断二进制响应:若Content-Type为image/、application/pdf/zip/octet-stream等,且Pretty/Preview不可用、Raw显示乱码、右上角出现下载按钮,即可确认为二进制。

Postman怎么判断响应是不是二进制内容
Postman 不会主动告诉你“这是二进制”,但会通过行为和界面反馈暴露它——关键看 Content-Type 响应头、Body 视图表现、以及是否出现“Send and download”按钮。
看 Content-Type 响应头是否匹配常见二进制类型
点击响应区的 Headers tab,找 Content-Type 字段。如果值是以下任意一种,基本可判定为二进制响应:
-
image/jpeg、image/png、image/gif -
application/pdf、application/zip、application/x-zip-compressed -
audio/mpeg、audio/wav -
application/octet-stream(最典型的兜底类型,含义就是“我不知道是什么,但它是二进制”)
注意:text/plain 或 application/json 也可能是伪装的二进制(比如后端漏设 header),所以不能只信 header,要结合下一点验证。
Body 视图显示 “No Response” 或乱码,且 Pretty/Preview 不可用
当响应确实是二进制时:
-
Prettytab 会灰掉或显示“Cannot format binary data” -
Previewtab 可能空白、报错,或只显示“Binary data”提示 -
Rawtab 会呈现大量不可读字符(如PNGIHDR...),滚动条极长 - 右上角原本的“Save Response”按钮会变成
Send and download
这个按钮是 Postman 最可靠的二进制信号——只要它出现,就说明 Postman 已放弃解析,只允许你下载原始字节流。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
用 pm.response.headers.get() 在 Tests 里做程序化判断
如果你在写自动化测试脚本,需要逻辑分支处理二进制响应,不要依赖 pm.response.json()(它会直接抛错),而应先检查 header:
const contentType = pm.response.headers.get("Content-Type");
if (contentType && /image\/|pdf|zip|octet-stream/i.test(contentType)) {
console.log("Detected binary response:", contentType);
// 跳过 JSON 解析,改用 pm.response.stream() 或仅校验状态码/大小
} else {
const json = pm.response.json(); // 安全执行
}
注意:pm.response.stream() 在 Postman 浏览器版不可用,仅限 Native App;若需读取二进制内容做断言(如校验 PDF 文件头),必须用 Native App + Node.js 预请求脚本配合,普通 Tests 无法读取原始字节。
最容易被忽略的是:即使 Content-Type 写着 application/json,响应体也可能是 gzip 压缩后的二进制流(尤其没配 Accept-Encoding: identity 时)。这时 Raw 里看到的不是 JSON 文本,而是以 \x1f\x8b 开头的乱码——得先关掉自动解压(Settings → General → Disable automatic decompression)再重试。










