Java中什么时候使用@RequestBody注解
http知识
在讲这个注解之前,需要了解一些网络请求的知识:
POST:请求体传参
POST:http://localhost:8080/student/add
Content-Type:application/json 请求类型
1.请求内容类型是json类型时,通过json传参
{
“name” : “zhangsan”,
“age” : 15
}
2.请求内容是表单类型时,类似GET通过拼接key-value传参
GET:url传参
通过?拼接key-value对传参
@RequestBody
1.@RequestBody顾名思义要求有请求体,所以不能使用GET请求,因为GET没有请求体。会报400Bad Request:请求内容缺失。去掉注解,可以成功请求。
2.请求的是表单(POST第二种情况)报415:不支持的媒体类型。去掉注解,可以成功请求。
3.请求json时,成功获取信息打印如下:
因此,请求的是表单(POST第二种情况)和GET请求不需要加@RequestBody。请求的是json需要加@RequestBody注解。
当不加注解时,json请求时,虽然ok但是得不到信息:
@RequestBody String不能接收一个字段
当你只想要接收一个字段时,比如name字段
{
“name” : “zhangsan”
}
@RequestBody后接受参数是字符串String的话,会接收整个json,最好用map或者实体类型
@RequestParam
@RequestParam和什么都不加是类似,但它的存在是为了解决前后端请求参数名称不一致的情况。
比如:前端参数是studentName,后端参数是name,可以这样解决
参考:
https://www.bilibili.com/video/BV1uq4y1j7fS/?spm_id_from=333.337.search-card.all.click