普通网友 2025-09-05 21:10 采纳率: 98.5%
浏览 1
已采纳

Postman添加JSON请求头时Content-Type未正确设置

在使用 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-datax-www-form-urlencoded)时,Postman 会根据所选格式自动设置对应的 Content-Type,例如:

    数据格式默认 Content-Type
    form-datamultipart/form-data
    x-www-form-urlencodedapplication/x-www-form-urlencoded
    raw + JSON未自动设置

    如果请求体为 JSON 格式但未手动设置 Content-Type: application/json,后端服务器可能无法识别数据格式,从而导致解析失败。

    3. 解决方案

    开发者应确保在发送 JSON 请求时手动设置 Content-Type 头信息为 application/json。具体操作如下:

    1. 在 Postman 中选择请求的 Body 标签页
    2. 选择 "raw" 并在右侧下拉菜单中选择 "JSON"
    3. 切换到 Headers 标签页
    4. 手动添加或修改 Content-Typeapplication/json

    示例请求头配置如下:

    
    Content-Type: application/json
    Authorization: Bearer your_token_here
    Accept: application/json
      

    4. 进阶:调试与排查流程图

    以下是一个使用 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,并将其作为接口测试文档的一部分。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 9月5日