1. 发送请求功能介绍

Postman是一款流行的API开发工具,它可以让开发人员更方便地测试、调试和使用API。其中,发送请求功能是Postman最为重要和基础的功能之一。

在Postman中,发送请求功能主要包括以下几个步骤:

  1. 选择请求方法:Postman支持多种HTTP请求方法,包括GET、POST、PUT、DELETE等。在发送请求前,需要选择相应的请求方法。

  2. 添加请求URL:在Postman的地址栏中添加请求URL,包括协议、域名、端口、路径等信息。可以使用环境变量、全局变量、预请求脚本等功能来管理请求URL。

  3. 添加请求头部:HTTP请求头部包含请求信息的附加属性,比如Content-Type、Authorization、User-Agent等。在Postman中,可以通过添加请求头部来自定义请求信息。

  4. 添加请求参数:HTTP请求参数包含请求数据的键值对,可以是查询参数、表单数据、JSON数据等。在Postman中,可以通过Params、Body、Authorization等标签页来添加请求参数。

  5. 发送请求:在完成上述步骤后,点击Send按钮即可发送请求。Postman会在请求历史中记录请求的结果和响应信息,方便开发人员查看和分析。

需要注意的是,Postman还支持多种高级功能,比如断言、变量、测试脚本、Mock等,可以让开发人员更加高效地进行API开发和测试。

2. GET 请求

2.1 传参的方式

Postman可以通过以下方式进行GET请求的传参:

2.1.1 查询参数(Query Parameters)

这是GET请求中最常用的传参方式。可以在请求URL的末尾添加查询参数,例如:http://example.com/api/users?name=John&age=30。在Postman中,可以在请求的URL栏中直接添加查询参数,或者使用Params选项卡添加。

可以使用@RequestParam注解来接收查询参数,例如:

@GetMapping("/api/users")
public List<User> getUsers(@RequestParam String name, @RequestParam int age) {
    // 根据查询参数查询用户
}

2.1.2  路径参数(Path Parameters)

有些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查询用户
}

2.1.3  请求体参数(Request Body Parameters)

虽然GET请求通常不包含请求体,但有些API可能要求在请求体中包含参数。在Postman中,可以使用Body选项卡添加请求体,并在其中包含需要的参数。

@PostMapping("/api/users")
public User addUser(@RequestBody User user) {
    // 添加新用户
}

总之,查询参数和路径参数是最常见的GET请求传参方式,而请求体参数则不太常用。在使用Postman发送GET请求时,应根据API的设计选择适当的传参方式。

2.2 不同的参数类型

在Postman中,可以使用以下方式传递GET请求中的不同类型的参数值

2.2.1 List类型参数值

 在SpringBoot中,可以使用@RequestParam注解来接收List类型的参数值,例如:

@GetMapping("/api/users")
public List<User> getUsers(@RequestParam List<String> names) {
    // 根据查询参数查询用户
}

2.2.2 Long类型参数值

可以直接传递Long类型的参数值,例如:

在SpringBoot中,可以使用@RequestParam注解来接收Long类型的参数值,例如:

@GetMapping("/api/users")
public User getUserById(@RequestParam Long id) {
    // 根据用户ID查询用户
}

2.2.3 Object类型参数值

可以使用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注解,指定使用该反序列化器进行反序列化。

3. Post请求

3.1 简单参数类型请求方式

在Postman中,可以使用以下几种方式传递POST请求中的参数:

3.1.1 Form表单方式

可以使用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) {
    // 添加新用户
}

3.1.2 JSON格式方式

可以使用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) {
    // 添加新用户
}

3.1.3 文件上传方式

可以使用文件上传的形式传递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格式的形式传递参数。

3.2 多种参数类型发起请求

3.2.1  @RequestParam或者@RequestPart的关系

@RequestParam注解用于从HTTP请求的查询参数中获取单个值,@RequestPart注解用于从multipart/form-data请求中获取单个值。在Postman中填充这些注解需要进行如下操作:

对于@RequestParam注解:

  1. 在Postman中打开创建请求的窗口。
  2. 选择HTTP方法,输入URL地址。
  3. 在“Params”选项卡下添加一个新的参数,参数名为“user”,值为你要传递的User对象的JSON字符串。
  4. 单击“Send”按钮,将请求发送到服务器。

例如,你可以在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注解:

  1. 在Postman中打开创建请求的窗口。
  2. 选择HTTP方法,输入URL地址。
  3. 在“Body”选项卡中选择“form-data”。
  4. 在“KEY”列中添加一个新的参数,参数名为“user”,类型为“File”或“Text”。
  5. 如果你选择“File”类型,请选择一个User对象的JSON文件。如果你选择“Text”类型,请将JSON对象粘贴到VALUE列中。
  6. 单击“Send”按钮,将请求发送到服务器。

例如,你可以在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"
}

请注意,在发送请求之前,需要确保已经在服务器端实现了相应的方法,并且已经配置好了正确的路由和参数类型。

3.2.2 复杂对象或文件

如果你需要传递复杂对象或文件等数据,你可以使用@RequestPart注解来声明这些参数,例如:

@PostMapping("/example")
public String example(@RequestPart("object1") Object object1, @RequestPart("file1") MultipartFile file1) {
    // 处理请求逻辑
}

请注意,@RequestParam注解声明的参数会以"application/x-www-form-urlencoded"格式进行编码,而@RequestPart注解声明的参数则会以"multipart/form-data"格式进行编码。因此,您需要根据您的请求数据类型选择适当的注解来声明参数。

3.2.3 表单方式多种类型参数

在Body选项卡中选择x-www-form-urlencoded格式,然后在键值对中填写参数,例如:

name=John
age=30
email=john@example.com
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<String,String> address) {
    // 添加新用户
}

4. 环境变量、全局变量、预请求脚本的使用方式

4.1 环境变量

环境变量可以用来存储API测试过程中的常用变量,例如API的基础URL、认证token、用户名、密码等等。在Postman中,可以通过点击右上角的眼睛图标,打开“Manage Environments”来管理环境变量。在“Manage Environments”页面中,可以添加、编辑、删除环境变量,并设置各个环境变量的值。

 在请求中,可以使用双括号语法(例如{{variable_name}})来引用环境变量。例如,如果我们已经在环境变量中设置了名为“base_url”的变量,并将其设置为“​ http://example.com ​" 则可以在请求的URL中使用{{base_url}}来代替“http://example.com”。

这样,当我们需要更改基础URL时,只需要更改环境变量的值即可,而不需要修改每个请求的URL。

4.2 全局变量

全局变量与环境变量类似,但是它们可以在Postman的所有环境中使用。全局变量可以在Postman的设置中定义,并且可以在请求中使用双括号语法来引用它们。在设置中,可以设置全局变量的键值对。

4.3 预请求脚本

预请求脚本是一个JavaScript脚本,它可以在发送请求之前执行。预请求脚本可以用于设置请求头、设置请求参数、验证请求体、设置环境变量等等。在Postman中,可以在请求中的“Pre-request Script”选项卡中编写预请求脚本。

预请求脚本可以使用Postman的内置方法和全局变量来实现各种功能。例如,可以使用pm.environment.set()方法来设置环境变量的值,使用pm.request.headers.add()方法来设置请求头等等。

总之,Postman的环境变量、全局变量和预请求脚本等功能可以帮助我们更加高效地进行API测试,尤其是在测试多个API、多个环境时,这些功能可以减少我们的工作量并提高测试效率。

5. 添加请求头信息

Postman支持多种类型的头部信息,以下是其中一些常见的:

  1. Content-Type:表示请求或响应消息的MIME类型。常见的MIME类型包括application/json、application/xml、application/x-www-form-urlencoded等。

  2. Authorization:表示请求的身份验证信息,常见的有Basic认证和Bearer Token认证等。

  3. User-Agent:表示请求的客户端信息,常见的有浏览器、移动设备等。

  4. Accept:表示客户端接受的响应内容类型,常见的有application/json、application/xml等

5.1 Content-Type:

表示请求或响应消息的MIME类型。常见的MIME类型包括application/json、application/xml、application/x-www-form-urlencoded等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Content-Type”作为头部名称,然后在头部值中输入所需的MIME类型。

5.2 Authorization

表示请求的身份验证信息,常见的有Basic认证和Bearer Token认证等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Authorization”作为头部名称,然后在头部值中输入所需的身份验证信息。

5.3 User-Agent

表示请求的客户端信息,常见的有浏览器、移动设备等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“User-Agent”作为头部名称,然后在头部值中输入所需的客户端信息。

5.4 Accept

表示客户端接受的响应内容类型,常见的有application/json、application/xml等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Accept”作为头部名称,然后在头部值中输入所需的响应内容类型。

除了以上列出的头部信息,还有很多其他类型的头部信息可以添加,方法都是类似的。在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入头部名称和值即可。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐