Postman是一款流行的API开发工具,它可以让开发人员更方便地测试、调试和使用API。其中,发送请求功能是Postman最为重要和基础的功能之一。
在Postman中,发送请求功能主要包括以下几个步骤:
选择请求方法:Postman支持多种HTTP请求方法,包括GET、POST、PUT、DELETE等。在发送请求前,需要选择相应的请求方法。
添加请求URL:在Postman的地址栏中添加请求URL,包括协议、域名、端口、路径等信息。可以使用环境变量、全局变量、预请求脚本等功能来管理请求URL。
添加请求头部:HTTP请求头部包含请求信息的附加属性,比如Content-Type、Authorization、User-Agent等。在Postman中,可以通过添加请求头部来自定义请求信息。
添加请求参数:HTTP请求参数包含请求数据的键值对,可以是查询参数、表单数据、JSON数据等。在Postman中,可以通过Params、Body、Authorization等标签页来添加请求参数。
发送请求:在完成上述步骤后,点击Send按钮即可发送请求。Postman会在请求历史中记录请求的结果和响应信息,方便开发人员查看和分析。
需要注意的是,Postman还支持多种高级功能,比如断言、变量、测试脚本、Mock等,可以让开发人员更加高效地进行API开发和测试。
Postman可以通过以下方式进行GET请求的传参:
这是GET请求中最常用的传参方式。可以在请求URL的末尾添加查询参数,例如:http://example.com/api/users?name=John&age=30
。在Postman中,可以在请求的URL栏中直接添加查询参数,或者使用Params选项卡添加。
可以使用@RequestParam
注解来接收查询参数,例如:
@GetMapping("/api/users")
public List getUsers(@RequestParam String name, @RequestParam int age) {
// 根据查询参数查询用户
}
有些API设计会要求在URL中包含动态参数,例如:http://example.com/api/users/123
,其中的“123”是用户ID。在Postman中,可以在请求的URL中添加路径参数,例如:http://example.com/api/users/{{userId}}
,其中“{{userId}}”是变量名,可以在请求前设置。
路径参数(Path Parameters):可以使用@PathVariable
注解来接收路径参数,例如:
@GetMapping("/api/users/{userId}")
public User getUserById(@PathVariable Long userId) {
// 根据用户ID查询用户
}
虽然GET请求通常不包含请求体,但有些API可能要求在请求体中包含参数。在Postman中,可以使用Body选项卡添加请求体,并在其中包含需要的参数。
@PostMapping("/api/users")
public User addUser(@RequestBody User user) {
// 添加新用户
}
总之,查询参数和路径参数是最常见的GET请求传参方式,而请求体参数则不太常用。在使用Postman发送GET请求时,应根据API的设计选择适当的传参方式。
在Postman中,可以使用以下方式传递GET请求中的不同类型的参数值
在SpringBoot中,可以使用@RequestParam
注解来接收List类型的参数值,例如:
@GetMapping("/api/users")
public List getUsers(@RequestParam List names) {
// 根据查询参数查询用户
}
可以直接传递Long类型的参数值,例如:
在SpringBoot中,可以使用@RequestParam
注解来接收Long类型的参数值,例如:
@GetMapping("/api/users")
public User getUserById(@RequestParam Long id) {
// 根据用户ID查询用户
}
可以使用JSON格式的字符串传递Object类型的参数值,例如:
在SpringBoot中,可以使用@RequestParam
注解和@JsonDeserialize
注解来接收Object类型的参数值,例如:
@GetMapping("/api/users")
public User getUser(@RequestParam("user") @JsonDeserialize(using = UserDeserializer.class) User user) {
// 根据用户信息查询用户
}
在上面的代码中,UserDeserializer
是自定义的JSON反序列化器,用于将JSON字符串反序列化为User对象。需要在User
类上添加@JsonDeserialize
注解,指定使用该反序列化器进行反序列化。
在Postman中,可以使用以下几种方式传递POST请求中的参数:
可以使用Form表单的形式传递POST请求中的参数,例如:
http://example.com/api/users
在Body选项卡中选择x-www-form-urlencoded格式,然后在键值对中填写参数,例如:
name=John
age=30
在SpringBoot中,可以使用@RequestParam
注解来接收Form表单中的参数,例如:
@PostMapping("/api/users")
public User addUser(@RequestParam String name, @RequestParam int age) {
// 添加新用户
}
可以使用JSON格式的形式传递POST请求中的参数,例如:
http://example.com/api/users
在Body选项卡中选择raw格式,并选择JSON格式,然后在输入框中填写JSON格式的参数,例如:
{
"name": "John",
"age": 30
}
在SpringBoot中,可以使用@RequestBody
注解来接收JSON格式的参数,例如:
@PostMapping("/api/users")
public User addUser(@RequestBody User user) {
// 添加新用户
}
可以使用文件上传的形式传递POST请求中的参数,例如:
http://example.com/api/users
在Body选项卡中选择form-data格式,然后在键值对中选择File类型的参数,并选择文件进行上传。
在SpringBoot中,可以使用@RequestParam
注解来接收文件上传的参数,例如:
@PostMapping("/api/users")
public User addUser(@RequestParam("file") MultipartFile file) {
// 上传用户头像
}
需要注意的是,POST请求中的参数传递方式需要与API的设计相对应,例如,如果API要求使用JSON格式传递参数,则必须使用JSON格式的形式传递参数。
@RequestParam注解用于从HTTP请求的查询参数中获取单个值,@RequestPart注解用于从multipart/form-data请求中获取单个值。在Postman中填充这些注解需要进行如下操作:
对于@RequestParam注解:
例如,你可以在Postman中将user的值作为查询参数发送请求:
http://example.com/api/user?id=1&account=username&iphone=1234567890&password=password&type=user&companyId=456&companyName=company name&userType=1&orgId=789&tenants=[{"id":1,"name":"tenant name","description":"tenant description"}]&role={"id":2,"name":"role name","description":"role description"}&company={"id":456,"name":"company name","address":"company address"}&token=token string
对于@RequestPart注解:
例如,你可以在Postman中将user的值作为form-data发送请求:
{
"id": 1,
"account": "username",
"iphone": "1234567890",
"password": "password",
"type": "user",
"companyId": 456,
"companyName": "company name",
"userType": 1,
"orgId": 789,
"tenants": [
{
"id": 1,
"name": "tenant name",
"description": "tenant description"
}
],
"role": {
"id": 2,
"name": "role name",
"description": "role description"
},
"company": {
"id": 456,
"name": "company name",
"address": "company address"
},
"token": "token string"
}
请注意,在发送请求之前,需要确保已经在服务器端实现了相应的方法,并且已经配置好了正确的路由和参数类型。
如果你需要传递复杂对象或文件等数据,你可以使用@RequestPart注解来声明这些参数,例如:
@PostMapping("/example")
public String example(@RequestPart("object1") Object object1, @RequestPart("file1") MultipartFile file1) {
// 处理请求逻辑
}
请注意,@RequestParam注解声明的参数会以"application/x-www-form-urlencoded"格式进行编码,而@RequestPart注解声明的参数则会以"multipart/form-data"格式进行编码。因此,您需要根据您的请求数据类型选择适当的注解来声明参数。
在Body选项卡中选择x-www-form-urlencoded格式,然后在键值对中填写参数,例如:
name=John
age=30
[email protected]
address[city]=New York
address[state]=NY
在SpringBoot中,可以使用@RequestParam
注解来接收Form表单中的多种类型的参数,例如:
@PostMapping("/api/users")
public User addUser(@RequestParam String name, @RequestParam int age, @RequestParam String email, @RequestParam Map address) {
// 添加新用户
}
环境变量可以用来存储API测试过程中的常用变量,例如API的基础URL、认证token、用户名、密码等等。在Postman中,可以通过点击右上角的眼睛图标,打开“Manage Environments”来管理环境变量。在“Manage Environments”页面中,可以添加、编辑、删除环境变量,并设置各个环境变量的值。
在请求中,可以使用双括号语法(例如{{variable_name}})来引用环境变量。例如,如果我们已经在环境变量中设置了名为“base_url”的变量,并将其设置为“ http://example.com " 则可以在请求的URL中使用{{base_url}}来代替“http://example.com”。
这样,当我们需要更改基础URL时,只需要更改环境变量的值即可,而不需要修改每个请求的URL。
全局变量与环境变量类似,但是它们可以在Postman的所有环境中使用。全局变量可以在Postman的设置中定义,并且可以在请求中使用双括号语法来引用它们。在设置中,可以设置全局变量的键值对。
预请求脚本是一个JavaScript脚本,它可以在发送请求之前执行。预请求脚本可以用于设置请求头、设置请求参数、验证请求体、设置环境变量等等。在Postman中,可以在请求中的“Pre-request Script”选项卡中编写预请求脚本。
预请求脚本可以使用Postman的内置方法和全局变量来实现各种功能。例如,可以使用pm.environment.set()方法来设置环境变量的值,使用pm.request.headers.add()方法来设置请求头等等。
总之,Postman的环境变量、全局变量和预请求脚本等功能可以帮助我们更加高效地进行API测试,尤其是在测试多个API、多个环境时,这些功能可以减少我们的工作量并提高测试效率。
Postman支持多种类型的头部信息,以下是其中一些常见的:
Content-Type:表示请求或响应消息的MIME类型。常见的MIME类型包括application/json、application/xml、application/x-www-form-urlencoded等。
Authorization:表示请求的身份验证信息,常见的有Basic认证和Bearer Token认证等。
User-Agent:表示请求的客户端信息,常见的有浏览器、移动设备等。
Accept:表示客户端接受的响应内容类型,常见的有application/json、application/xml等
表示请求或响应消息的MIME类型。常见的MIME类型包括application/json、application/xml、application/x-www-form-urlencoded等。
添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Content-Type”作为头部名称,然后在头部值中输入所需的MIME类型。
表示请求的身份验证信息,常见的有Basic认证和Bearer Token认证等。
添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Authorization”作为头部名称,然后在头部值中输入所需的身份验证信息。
表示请求的客户端信息,常见的有浏览器、移动设备等。
添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“User-Agent”作为头部名称,然后在头部值中输入所需的客户端信息。
表示客户端接受的响应内容类型,常见的有application/json、application/xml等。
添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Accept”作为头部名称,然后在头部值中输入所需的响应内容类型。
除了以上列出的头部信息,还有很多其他类型的头部信息可以添加,方法都是类似的。在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入头部名称和值即可。