Postman如何发送JSON请求:详细步骤与实用技巧
在API测试与开发中,JSON(JavaScript Object Notation)因轻量级、易读性强,已成为最常用的数据交换格式之一,Postman作为主流的API测试工具,支持通过JSON格式与服务器交互,本文将详细介绍如何在Postman中发送JSON请求,从基础操作到进阶技巧,助你高效完成API测试。
准备工作:安装Postman与创建请求
安装Postman
确保你的电脑已安装Postman,你可以从Postman官网下载对应系统的安装包(支持Windows、macOS、Linux),安装后注册/登录账户(可选,但登录可同步请求历史到云端)。
创建新请求
打开Postman,点击界面左上角的 “New” 按钮,选择 “HTTP Request”(或直接点击左上角“+”号新建标签页),即可创建一个HTTP请求,你可以在顶部的输入框中设置请求的 URL(如https://api.example.com/users),并在下拉菜单中选择请求方法(GET、POST、PUT、DELETE等)。注意:发送JSON数据通常用于POST(创建资源)、PUT(更新资源)等需要提交请求体的方法,GET请求一般不需要请求体。
设置请求头(Headers):声明JSON格式
发送JSON请求时,必须通过请求头(Headers)告诉服务器“请求体中是JSON数据”,这是服务器正确解析JSON的关键步骤。
添加Headers
在Postman界面的 “Headers” 标签页下,点击 “Add” 按钮添加请求头,最核心的请求头是:
- Key:
Content-Type - Value:
application/json
Content-Type: application/json 明确声明请求体的数据类型为JSON,服务器会据此解析请求体中的字符串为JSON对象。
其他常用Headers
根据API接口要求,你可能还需要添加其他请求头,
- 认证信息:
Authorization: Bearer your_token(Bearer Token认证) - 接口版本:
Api-Version: v1 - 自定义标识:
X-Custom-Header: custom_value
配置请求体(Body):输入JSON数据
请求体是JSON数据的核心载体,在Postman中,你需要在 “Body” 标签页下配置请求体,并选择 “raw” 模式(原始文本模式),然后在右侧下拉菜单中选择 “JSON” 格式。
输入JSON数据
选择“raw”+“JSON”后,下方的文本框会自动支持JSON语法高亮(便于检查格式错误),你可以直接输入JSON对象或数组,
{
"name": "张三",
"age": 25,
"email": "zhangsan@example.com",
"address": {
"city": "北京",
"district": "朝阳区"
},
"hobbies": ["阅读", "游泳"]
}
注意:JSON格式要求严格,必须确保:
- 键和值用双引号()包围(单引号会导致解析错误);
- 对象和数组使用 和
[]包裹; - 键值对之间用逗号()分隔,最后一个键值对后无逗号。
使用变量(可选)
Postman支持环境变量、全局变量等动态数据,在JSON中使用变量时,语法为 {{变量名}}。
{
"name": "{{username}}",
"email": "{{user_email}}"
}
在发送请求前,需提前配置变量(点击右上角“眼睛”图标进入“Variables”界面)。
上传JSON文件(可选)
如果JSON数据已保存为本地文件(如data.json),可以在“Body”标签页下选择 “binary” 模式,然后上传文件,但更推荐使用“raw”模式直接输入或粘贴JSON内容,便于实时修改和调试。
发送请求与查看响应
完成URL、Headers、Body配置后,点击Postman界面左上角的 “Send” 按钮(蓝色发送图标),即可向服务器发送JSON请求。
查看响应状态
发送请求后,Postman下方会显示 “Response” 区域,首先关注 状态码(Status Code):
200 OK:请求成功,服务器已正常处理;201 Created:POST请求成功,资源已创建;400 Bad Request:请求体JSON格式错误或参数缺失;401 Unauthorized:未认证或Token无效;500 Internal Server Error:服务器内部错误。
检查响应数据
响应体通常以JSON格式返回,Postman会自动解析并展示为结构化视图(可折叠/展开),方便查看返回的字段和值,如果返回的是非JSON格式(如HTML错误页面),可在“Response”标签页右下角选择 “Preview”(预览)或 “Raw”(原始数据)查看。
示例:完整请求流程
假设我们要向https://api.example.com/users发送POST请求,创建一个新用户,完整配置如下:
- Method:POST
- URL:
https://api.example.com/users - Headers:
Content-Type: application/json - Body(raw+JSON):
{ "name": "李四", "age": 30, "email": "lisi@example.com" }点击“Send”后,若状态码为
201 Created,响应体可能为:{ "id": 1001, "name": "李四", "email": "lisi@example.com", "created_at": "2023-10-01T12:00:00Z" }
进阶技巧:提升JSON请求效率
使用集合(Collections)管理请求
如果需要频繁测试多个相关接口(如用户管理模块的创建、查询、更新),可将请求保存到 “Collections”(集合)中,点击左侧“Collections”→“Add Collection”,输入集合名称(如“用户API”),然后右键集合→“Add Request”,创建并配置请求,方便批量执行或分享。
预请求脚本(Pre-request Scripts)
在发送请求前,可能需要动态生成数据(如随机ID、时间戳),可在 “Pre-request Scripts” 标签页编写JavaScript代码,
// 生成随机UUID并设置为全局变量
pm.globals.set("random_id", pm.variables.replaceIn("{{$guid}}"));
然后在JSON请求体中使用变量:"id": "{{random_id}}"。
测试脚本(Tests)
发送请求后,可通过 “Tests” 标签页编写JavaScript脚本,验证响应结果是否符合预期。
// 验证状态码是否为201
pm.test("Status code is 201", function () {
pm.response.to.have.status(201);
});
// 验证响应体中是否包含"id"字段
pm.test("Response has id", function () {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property("id");
});
// 验证email字段是否正确
pm.test("Email is correct", function () {
const jsonData = pm.response.json();
pm.expect(jsonData.email).to.eql("lisi@example.com");
});
脚本执行后,可在“Test Results”区域查看通过/失败的测试用例。
环境与全局变量
不同环境(如开发、测试、生产)的API域名、Token可能不同,可通过 “Environments”(环境变量)管理:
- 创建环境(如“开发环境”),添加变量(如
base_url: https://dev-api.example.com); - 在请求URL中使用变量:
{{base_url}}/users; - 切换环境后,所有引用变量的请求会自动更新。
常见问题与解决方法
提示“Uncaught SyntaxError: Unexpected token”
原因:JSON格式错误(如单引号、未闭合的括号或逗号)。
解决:检查“Body”中的JSON语法,或使用在线JSON格式化工具(如JSONLint)验证。
响应状态码为“400 Bad Request”
原因:请求体JSON格式错误、缺少必填字段,或参数类型不匹配(如年龄传字符串)。
解决:核对接口文档,确保JSON字段和类型正确;检查Headers中是否包含Content-Type: application/json。



还没有评论,来说两句吧...