get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用

GET请求:

1.@PathVariable 注解:参数拼接在url上,value的方式入参

@GetMapping("/getData/{id}")
public ResponseResult test(@PathVariable List id){
    return ResponseResult.ofSuccess(id);
}

集合入参,参数以逗号进行分隔
get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用_第1张图片

2.@RequestParam 注解:参数拼接在url上(只能用Params方式,不能用Body),以key=value的方式入参

 @GetMapping("/getData")
public ResponseResult test1(@RequestParam List id){
    return ResponseResult.ofSuccess(id);
}

集合入参,参数以逗号进行分隔
get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用_第2张图片

3.@RequestBody 注解:由于GET的参数是通过Url方式传递的,而不是请求体传递的,所以无法通过@RequestBody注解来接收。


POST请求:

1.@PathVariable 注解:参数拼接在url上,value的方式入参

@PostMapping("/getData/{id}")
public ResponseResult test2(@PathVariable List id){

    return ResponseResult.ofSuccess(id);
}

集合入参,参数以逗号进行分隔
get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用_第3张图片

2.@RequestParam 注解:即可拼接在url上,也可在请求体中

@PostMapping("/getData1")
public ResponseResult test3(@RequestParam List id){
    return ResponseResult.ofSuccess(id);
}

使用Params方式:参数拼接在url上
get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用_第4张图片
使用Body,form的方式:参数在请求体中
get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用_第5张图片
使用Body,json的方式:参数在请求体中

会报id不能为空的错误信息

3.@RequestBody 注解:

 @PostMapping("/getData2")
public ResponseResult test4(@RequestBody List id){
    return ResponseResult.ofSuccess(id);
}

不支持Params方式入参

org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing:

不支持Body,form方式入参

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

支持Body,json方式
get post请求 与 @PathVariable @RequestParam @RequestBody 注解的使用_第6张图片

你可能感兴趣的