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 接口对接 |
