请求
请求
Postman 工具
Postman 是一款功能强大的网页调试与发送网页 HTTP 请求的 Chrome 插件。
作用:常用于进行接口测试
下载:https://postman.xiniushu.com/docs/getting-started/download-postman
简单参数
原始方式
在原始的 web 程序中,获取请求参数,需要通过 HttpServletRequest 对象手动获取。
@RequestMapping("/simpleParam")
public String simpleParam(HttpServletRequest request){
String name=request.getParameter("name"),
String ageStr = request.getParameter("age");
int age =Integer.parselnt(ageStr);
System.out.println(name+" :"+age);
return "Ok";
}
使用 Postman 测试

SpringBoot方式
简单参数:参数名与形参变量名相同,定义形参即可接收参数。
@RequestMapping("/simpleParam")
public String simpleParam(String name, Integer age){
System.out.println(name + ":" + age);
return "OK";
}
如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam 完成映射。
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name", required = false) String username, Integer age){
System.out.println(username + ":" + age);
return "OK";
}
使用 Postman 测试

注意
@RequestParam 中的 required
属性默认为 true
,代表该请求参数必须传递,如果不传递将报错。 如果该参数是可选的,可以将 required
属性设置为 false
。
实体参数
简单实体对象
请求参数名 与 形参对象属性名 相同,定义 POJO 接收即可

- 创建 User 实体类
public class User { private String name; private Integer age; public String getName() { return name; } public Integer getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
- controller 中
@RequestMapping("/pojoUser") public String pojoUser(User user) { System.out.println(user); return "ok"; }
- 使用 Postman 测试
复杂实体对象
请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套 POJO 属性参数

- 创建 Address 类
public class Address { private String city; private String province; public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } @Override public String toString() { return "Address{" + "city='" + city + '\'' + ", province='" + province + '\'' + '}'; } }
- 创建 User 实体类
public class User { private String name; private Integer age; private Address address; public String getName() { return name; } public Integer getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(Integer age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; } }
- controller 中
@RequestMapping("/pojoAddress") public String pojoAddress(User user) { System.out.println(user); return "ok"; }
- 使用 Postman 测试
数组集合参数
数组参数
请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
controller 中
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){
System.out.println(Arrays.toStrig(hobby));
return "Ok";
}
使用 Postman 测试

集合参数
请求参数名 与 形参集合名称 相同 且 请求参数为 多个,@RequestParam 绑定参数关系 controller 中
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){
System.out.println(hobby);
return "Ok";
};
使用 Postman 测试

日期参数
日期参数:使用 @DateTimeFormat 注解完成日期参数格式转换
controller 中
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
使用 Postman 测试

Json 参数
JSON 数据 键名 与 形参对象属性 名 相同,定义 POJO 类型形参即可接收参数,需要使用 @RequestBody 标识
controller 中
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user) {
System.out.println(user);
return "ok";
}
使用 Postman 测试

路径参数
通过请求 URL 直接传递参数,使用 {...} 来标识该路径参数,需要使用 @PathVariable 获取路径参数
controller 中
// 单个参数
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable integer id) {
System.out.println(id);
return "ok";
}
// 多个参数
@RequestMapping("/path/{id}/{name}")
public String pathParam2(@PathVariable integer id, @PathVariable String name,) {
System.out.println(id + ": " + name);
return "ok";
}
使用 Postman 测试 (单个参数)

使用 Postman 测试 (多个参数)
