@RequestBody注解

@RequestBody注解

基本概念

扩展
http报文会包含四部分,第一部分是请求行,第二部分是请求头,第三部分是空行,第四部分是请求体。
对于POST之类的请求来说,它主要是用来传输数据的,它的参数主要是写在请求体里面的;
而对于GET请求来说,它不是用来传输数据的,它主要是用来获取数据的,虽然没有命令禁止参数信息写在请求体里面,但是我们一般不会在请求体里面写东西,对于GET请求来说一般把它的参数信息写在请求行的uri里面。

@RequestBody注解作用
http请求中,在http报文的请求体中,通常会包含多个传输的参数信息(GET请求除外),可能这些参数信息会有很多,但是对应到我们Controller控制器中接收http请求的方法,我们并不想要在方法里面写多个参数怎么办呢?那么这个时候就可以借助@RequestBody注解去把请求体里面的多个参数封装成一个对象,如下图:
在这里插入图片描述
但是也并

  • 不是http报文的请求体里面的每个参数都能够封装进Payment对象里面,要求请求体里面的参数名字必须要和Payment对象里面的属性名字一致。
  • 前端必须使用请求体里面包含参数的方法。因为GET请求方法的请求体里面不包含参数,如果后端想要让@RequestBody生效,前端不能使用GET请求方法;必须使用包含请求体的方法比如说POST方法。
  • 前端使用的http请求,请求头里面的Content-Type的值必须要是application/json或application/xml。

在postman里如何发送接收端带有@RequestBody的请求?

在我们的idea项目里面的controller控制器下面,接收参数的地方使用了@RequestBody注解,如下图:
在这里插入图片描述
那么我们在postman里面发送http请求的时候需要什么规范呢?首先需要把请求头的content-type设置为application/json,如下图:
在这里插入图片描述
注意我们的参数必须要写在Body下面,如下图:
在这里插入图片描述
千万不能写到Params下面 如下图:
在这里插入图片描述
这样写请求体中没有参数,参数在uri中,这样@RequestBody就不能把http报文请求体中的参数封装到后面的参数中了。因此一定不能这样写。

还有最后一个要求是,必须使用的是POST请求方法,如果使用了@RequestBody,那么我们controller控制器方法就要写成POST请求方法了,如下图:
在这里插入图片描述

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr-X~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值