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 接口对接
相关推荐
EVE จุ๊บ2 小时前
playwright和selenium的区别是什么
selenium·测试工具
Meta Luo2 天前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
释槐鸟~2 天前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖3 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
蒲公英内测分发3 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发3 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪3 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为4 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
xie881018024 天前
长表格跨页重复表头:排版上的做法
测试工具
老孟说禅4 天前
测试工具示波器的使用
测试工具