该注解标注在控制器方法的参数前,并且只能存在一个
使用场合:
1.请求的请求方式为post
2.请求体内容类型为 application/json
知识补充:
首先普通的请求方式有两种(这里不介绍put、delete等方式):get、post请求
get请求的请求报文主要包括两部分:请求行,请求头
而post请求的请求报文主要包括三部分:请求行,请求头,请求体
请求行中包含了:请求的方式、请求的资源路径、请求的协议和版本号
请求头中包含各种键值对:可接收的数据类型(Accept),客户端信息,和请求体内容类型(Content-Type)等
可接收的数据类型:mvc框架的底层会根据 客户端指定可接收的数据类型,以及数据类型的权重来决定应该返回哪种类型的数据给客户端(这就是为什么有时候浏览器和apiPost等工具接收到的数据类型不一样)
请求体内容类型:数据类型(Content-Type)就声明了post请求的请求体的数据类型
举例:
在使用restTemplate的postForObject方法时会发送一个post请求,并自动将你想要发送的数据转变为json格式,之后设置Accept=application/json、Content-Type=application/json
debug数据展示:
此时服务端的控制器方法参数前 如果没有标注@RequestBody 则会导致接收不到数据