注解 | 支持的类型 | 支持的请求类型 | 支持的Content-Type | 请求示例 |
---|---|---|---|---|
@PathVariable | url | GET | 所有 | /test/{id} |
@RequestParam | url | GET或POST | 所有 | /test?id=1或{“id”:1} |
@RequestBody | Body | POST/PUT/DELETE/PATCH | json | {“id”:1} |
1、@PathVariable 一般用于GET请求
url: http://127.0.0.1:8099/test/10?name=xiaohong
@GetMapping("/test/{id}")
public Object test(@PathVariable Long id,@RequestParam("name") String name){
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("msg", "成功");
return map;
}
2、@RequestParam 一般用于GET请求或者POST请求
GET请求
url: http://127.0.0.1:8099/test?id=10&cid=123456
@GetMapping("/test")
public Object test(@RequestParam String param,@RequestParam("cid") String cid){
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("msg", "成功");
return map;
}
POST请求
url: http://127.0.0.1:8099/test
特别注意!!!
在 微信小程序
或uniapp
中请求的时候需要设置请求头!如果不设置的话默认是application/json
,这个时候就不能用@RequestParam获取了只能用@requestBody Map param获取。
设置成application/x-www-form-urlencoded
就可以用@RequestParam获取里面的参数了!
uni或wx.request({
url: getApp().globalData.myurl + '/register',
data: {
phone: this.phone,
email: this.email,
password: this.password,
},
method: 'POST',
dataType: 'json',
header:{
//设置请求头!不设置的话默认就是application/json
'content-type': 'application/x-www-form-urlencoded'
},
success(res){
},
请求头为application/json
使用以下方式:
@PostMapping("/test")
public Object test(@RequestParam Map<String,String> map){
int id = map.get("id")
int cid = map.get("cid")
System.out.print(id +" "+ cid)
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("msg", "成功");
return map;
}
请求头为application/x-www-form-urlencoded
使用以下方式:
@GetMapping("/test")
public Object test(@RequestParam String param,@RequestParam("cid") String cid){
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("msg", "成功");
return map;
}
3、@RequestBody 一般用于实体类来接收数据
默认请求头为application/json
使用@RequestBody前端request发请求的时候就不用设置请求头了!使用默认的application/json
@PostMapping("/add")
public Object add(@RequestBody User user) {
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("msg", "成功");
return map;
}
// user是我们的实体类