在使用 Postman 发送 JSON 请求时,常遇到请求失败的问题,其根本原因在于未正确设置 `Content-Type` 请求头为 `application/json`。Postman 默认不会自动设置该头信息,特别是在使用非原始 JSON 数据格式(如 form-data 或 x-www-form-urlencoded)时,导致后端无法正确解析请求体。开发者需手动在 Headers 栏位中添加 `Content-Type: application/json`,以确保服务器正确识别并解析 JSON 数据。此问题常见于初学者或从浏览器请求迁移至 Postman 的场景中,忽略请求头配置,从而引发“无效 JSON”或“415 Unsupported Media Type”等错误。
1条回答 默认 最新
白萝卜道士 2025-09-05 21:10关注1. 问题现象
在使用 Postman 发送 JSON 请求时,开发者经常遇到请求失败的问题。常见的错误信息包括:
- "Invalid JSON"
- "415 Unsupported Media Type"
- "No HTTP resource was found that matches the request URI"
这些错误通常指向服务器端无法正确解析请求体内容,而根本原因往往与请求头中
Content-Type的设置有关。2. 原因分析
Postman 在发送请求时,默认不会自动设置
Content-Type头信息。当开发者使用非原始 JSON 数据格式(如form-data或x-www-form-urlencoded)时,Postman 会根据所选格式自动设置对应的Content-Type,例如:数据格式 默认 Content-Type form-data multipart/form-data x-www-form-urlencoded application/x-www-form-urlencoded raw + JSON 未自动设置 如果请求体为 JSON 格式但未手动设置
Content-Type: application/json,后端服务器可能无法识别数据格式,从而导致解析失败。3. 解决方案
开发者应确保在发送 JSON 请求时手动设置
Content-Type头信息为application/json。具体操作如下:- 在 Postman 中选择请求的 Body 标签页
- 选择 "raw" 并在右侧下拉菜单中选择 "JSON"
- 切换到 Headers 标签页
- 手动添加或修改
Content-Type为application/json
示例请求头配置如下:
Content-Type: application/json Authorization: Bearer your_token_here Accept: application/json4. 进阶:调试与排查流程图
以下是一个使用 Mermaid 编写的流程图,用于指导 Postman 请求失败时的排查流程:
graph TD A[开始] --> B{请求失败?} B -->|是| C[检查响应状态码] C --> D{状态码为415?} D -->|是| E[检查Content-Type头] E --> F[是否为application/json?] F -->|否| G[手动设置Content-Type: application/json] F -->|是| H[检查JSON格式是否正确] H --> I{是否有效?} I -->|否| J[修正JSON格式] I -->|是| K[联系后端排查] D -->|否| L[查看其他错误码] B -->|否| M[请求成功]5. 实际开发中的注意事项
该问题在实际开发中常见于以下场景:
- 开发者从浏览器发起请求(浏览器自动设置 Content-Type)迁移到 Postman 时,未注意到 Postman 的默认行为差异。
- 团队协作中,不同成员对 Postman 使用习惯不同,导致接口调用失败。
- 自动化测试脚本中,使用 Postman Collection Runner 或 Newman 时,未统一配置 Headers。
建议团队在使用 Postman 时统一规范,明确要求在发送 JSON 请求时必须设置
Content-Type: application/json,并将其作为接口测试文档的一部分。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报