Postman 中 POST 请求 Body 类型详解

  在 Postman 中使用 POST(或 PUT/PATCH)方法时,Body 选项提供了多种数据传输格式。选择合适的类型,对 API 调试至关重要。以下是六种 Body 类型的详细对比与使用场景。

  1. None

  描述:不发送请求体(Request Body)。

  适用场景:

  ·请求无需携带任何数据(如某些幂等性 POST 接口)

  · 仅通过 URL 参数或 Headers 传递信息

  示例:POST /api/refresh-token(仅靠 Cookie 或 Header 鉴权)

  2. form-data

  Content-Type:multipart/form-data

  描述:将数据分块(multipart)传输,每部分可包含文本或二进制文件。

  特点:

  · 支持 文件 + 文本混合上传

  · 每个字段独立声明 Content-Disposition

  · Postman 提供图形化表单界面(Key/Value + File 选择)

  适用场景:

  · 文件上传(图片、视频、PDF 等)

  · 表单中同时包含文本字段和文件字段

  示例请求体结构:

POST /upload HTTP/1.1
  Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
  ------WebKitFormBoundary7MA4YWxkTrZu0gW
  Content-Disposition: form-data; name="avatar"; filename="me.jpg"
  (Content-Type: image/jpeg)
  <binary data>
  ------WebKitFormBoundary7MA4YWxkTrZu0gW
  Content-Disposition: form-data; name="userId"
  12345
  ------WebKitFormBoundary7MA4YWxkTrZu0gW--

3. x-www-form-urlencoded

  Content-Type:application/x-www-form-urlencoded

  描述:以 URL 查询字符串格式编码键值对。

  特点:

  ·数据格式:key1=value1&key2=value2

  · 特殊字符自动 URL 编码(如空格 → +,@ → %40)

  · 与 HTML <form> 默认提交方式一致

  适用场景:

  传统 Web 表单提交(登录、注册、搜索等)

  不涉及文件的纯文本表单

  示例:

POST /login HTTP/1.1
  Content-Type: application/x-www-form-urlencoded
  username=admin&password=123456&remember=true

4. raw

  描述:发送原始文本数据,支持多种格式。

  特点:

  ·右侧可选择格式:Text / JSON / XML / HTML / JavaScript 等

  · Postman 自动设置对应的 Content-Type(如选 JSON → application/json)

  · 内容为纯文本,需手动保证语法正确(如 JSON 合法性)

  适用场景:

  · 调用 RESTful API(最常见为 JSON)

  · 发送 XML、自定义文本协议、脚本等

  JSON 示例:

POST /api/users HTTP/1.1
  Content-Type: application/json
  {
    "name": "Alice",
    "email": "alice@example.com"
  }

XML 示例:

POST /api/order HTTP/1.1
  Content-Type: application/xml
  <order>
    <id>1001</id>
    <item>Book</item>
  </order>

注意:若选择 Text 但内容为 JSON,服务端可能因 Content-Type: text/plain 而解析失败!

  5. binary

  Content-Type:application/octet-stream(可手动覆盖)

  描述:直接上传单个文件的原始二进制内容。

  特点:

  ·一次只能上传 一个文件

  · 不添加任何字段名或元数据

  · 内容 = 文件的原始字节流

  适用场景:

  · 上传图片、音频、PDF 等二进制文件

  · 接口要求直接接收文件流(如 /upload/avatar)

  示例:

  选择本地 photo.png → Postman 直接将其二进制内容作为 Body 发送。

  6. GraphQL

  Content-Type:application/json

  描述:专为 GraphQL 设计的请求格式。

  特点:

  · 提供结构化输入框:QUERY + GRAPHQL VARIABLES

  · 实际发送的是 JSON 对象:{ "query": "...", "variables": { ... } }

  · 自动高亮语法、格式化查询

  适用场景:

  与 GraphQL 服务端交互(如 Apollo Server、Hasura)

  示例:

 POST /graphql HTTP/1.1
  Content-Type: application/json
  {
    "query": "query GetUser($id: ID!) { user(id: $id) { name email } }",
    "variables": { "id": "123" }
  }

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐