114、Postman 中POST 请求的 Body 六种参数格式介绍

Postman 中 POST 请求的 Body 包含 none、form-data、x-www-form-urlencoded、raw、binary、GraphQL 六种参数格式,每种格式对应不同的参数传递场景和接口解析规则,以下是清晰的分类介绍(含核心特点、适用场景、操作方式和注意事项):

一、none:无请求体

1、核心特点

  • 不向服务器传递任何请求体数据,参数仅通过 URL 查询参数(Query) 或 请求头(Headers) 传递;

  • Postman 默认选中该选项,无需配置任何 Body 内容。

2、适用场景

  • POST 接口仅需 URL/Headers 传参(如你之前的 statType=1 放在 URL 后时);
  • 接口设计为「无请求体」(如简单的状态查询、权限验证接口)。

3、操作方式

  • 选择 POST 方法,填写含 Query 参数的 URL(或基础 URL + Params 配置);
  • 切换到 Body 标签页,确认选中「none」,直接发送请求即可。

二、form-data:多部分表单数据

1、核心特点

  • 以「分隔符 + 键值对」形式传递数据,支持 普通文本参数 和 二进制文件 混合传输;
  • Postman 自动添加请求头 Content-Type: multipart/form-data; boundary=xxx(boundary 为自动生成的分隔符);
  • 参数值无需手动编码,兼容特殊字符(换行、空格、中文等)。

2、适用场景

  • 需要上传文件(图片、Excel、压缩包等),或文件 + 普通参数混合传递(如「用户头像 + 用户 ID」);
  • 接口明确要求 multipart/form-data 格式(如文件上传接口、表单提交带附件)。

3、操作方式

  • 选中「form-data」,在 Key 列输入参数名,Value 列输入文本值;
  • 若传文件:将 Key 列右侧的「文本」切换为「文件」,点击 Value 列的「Select Files」选择本地文件;
  • 可通过「+/-」添加 / 删除多个参数(文本 / 文件均可)。

4、注意事项

  • 无文件传递时,优先选 x-www-form-urlencoded(更轻量);
  • 上传大文件需注意服务器的文件大小限制(避免 413 错误)。

三、x-www-form-urlencoded:表单编码数据

1、核心特点

  • 仅支持「单层键值对」参数,以 key1=value1&key2=value2 字符串形式传递;
  • Postman 自动添加请求头 Content-Type: application/x-www-form-urlencoded,并对特殊字符自动 URL 编码(如空格→%20、中文→UTF-8 编码);
  • 不支持文件上传和嵌套参数(如 {user: {name: "xxx"}})。

2、适用场景

  • 无文件的普通表单提交(如登录接口:用户名 + 密码、注册接口:手机号 + 验证码);
  • 传统后端接口(如 PHP、Java Spring 的 @RequestParam 注解接收参数)。

3、操作方式

  • 选中「x-www-form-urlencoded」,在 Key 列填参数名,Value 列填值;
  • Postman 自动拼接为编码后的字符串,无需手动写 & 连接。

4、注意事项

  • 禁止传文件(会导致文件损坏,接口无法解析);
  • 嵌套参数需改用 raw-JSON 格式。

四、raw:原始文本数据

1、核心特点

  • 支持自定义任意文本格式(JSON/XML/Text/HTML/JavaScript 等),需手动选择数据类型;
  • Postman 自动匹配请求头 Content-Type(如选 JSON 则为 application/json,选 XML 则为 application/xml);
  • 可传递复杂嵌套结构(如数组、多层对象),是前后端分离接口的主流格式。

2、适用场景

  • 接口要求 JSON 格式(90% 的 RESTful 接口,如 {statType: 1, page: {size: 10, num: 1}});
  • 传递 XML、HTML 等结构化文本(如 SOAP 接口、自定义文本协议)。

3、操作方式

  • 选中「raw」,点击右侧「Text」下拉框选择格式(优先选 JSON);
  • 在输入框中编写对应格式的内容(JSON 需保证语法正确:双引号、无注释、逗号不遗漏);
  • 若需自定义编码(如 charset=utf-8),可在 Headers 中手动修改 Content-Type。

4、注意事项

  • JSON 语法错误会直接导致 400 错误,可借助 Postman 的「格式化」功能校验;
  • 格式需与接口要求的 Content-Type 严格匹配(如接口要 JSON,不能选 Text)。

五、binary:纯二进制数据

1、核心特点

  • 仅传递「单个二进制文件」(无键值对、无其他参数),以字节流形式传输;
  • Postman 自动添加请求头 Content-Type: application/octet-stream(通用二进制类型),可手动修改为文件专属类型(如 image/png、application/pdf)。

2、适用场景

  • 单独上传一个文件(无附加参数);
  • 接口要求接收「纯二进制流」(如视频上传、文件存储服务接口)。

3、操作方式

  • 选中「binary」,点击「Select Files」选择本地单个文件;
  • 如需指定文件类型,在 Headers 中添加 Content-Type: 对应类型(如 image/jpg)。

4、注意事项

  • 仅支持单个文件,多文件 / 文件 + 参数需用 form-data;
  • 大文件上传需调整 Postman 的请求超时时间(Settings→General→Request Timeout)。

六、GraphQL:GraphQL 专用格式

1、核心特点

  • 专为 GraphQL 接口设计,支持「查询(Query)」和「变更(Mutation)」两种操作;
  • 本质是特殊的 JSON 请求,Postman 自动添加 Content-Type: application/json;
  • 支持「变量分离」,让查询语句更简洁、可复用。

2、适用场景

  • 对接 GraphQL 类型接口(如现代后端服务、第三方 GraphQL API);
  • 需要灵活查询数据(仅返回所需字段,避免冗余)。

3、操作方式

  • 选中「GraphQL」,在「Query」框编写 GraphQL 语句(如查询数据、修改数据);
  • 若用变量:在「Variables」框填写 JSON 格式的变量(与 Query 中的变量名对应);
    示例:
csharp 复制代码
# Query 框
query GetHealthIndex($statType: Int!) {
  healthIndexStatistics(statType: $statType) {
    id
    value
  }
}

# Variables 框
{
  "statType": 1
}

4、注意事项

  • 仅适用于 GraphQL 接口,普通 REST 接口不支持;
  • Query 语句需符合 GraphQL 语法(字段、变量类型需匹配)。

七、快速选型对照表

格式 核心能力 典型场景
none 无请求体 仅 URL/Headers 传参
form-data 文本 + 文件混合传输 文件上传(带附加参数)
x-www-form-urlencoded 单层键值对表单 登录 / 注册等简单表单提交
raw(JSON) 复杂嵌套参数 前后端分离 RESTful 接口
binary 单个纯二进制文件 单独上传文件(无参数)
GraphQL GraphQL 查询 / 变更 GraphQL 接口对接
相关推荐
程序员杰哥2 小时前
快速定位bug,编写测试用例
自动化测试·软件测试·python·功能测试·测试工具·测试用例·bug
Proud lion2 小时前
Apipost开发管理平台功能对比与应用场景分析
yapi·postman·apipost·apifox·api开发
测试-鹏哥2 小时前
ITP平台全新Mock服务上线 —— 助力高效API测试
前端·python·测试工具
程序员杰哥2 小时前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
做测试的小薄2 小时前
用Charles进行手机APP抓包终极指南(含抓取网站过滤、HTTPS解密、断点、弱网模拟)
测试工具·抓包·断点·抓包工具·弱网·chrales
安然无虞17 小时前
LoadRunner性能测试详解·上
python·测试工具·压力测试
TechMasterPlus17 小时前
wireshark使用
网络·测试工具·wireshark
测试涛叔20 小时前
高频Postman软件测试面试题
测试工具·lua·postman
周周记笔记21 小时前
[元器件专题] RC充电电路(七)
嵌入式硬件·测试工具·硬件开发