@RequestParam与@RequestBody的区别及Postman对应操作

首先,这两个注解都是用来接收前端传给后端的数据的,但是前端传送的格式不同,后端就要选择相应的注解来接收,否则就会报400 Bad Request错误

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TyXGy6p9-1607932568643)(C:\Users\Wypeng\Pictures\csdn\1\400badrequest错误.png)]
[外链图片转存失败,源站可能有
防盗]!链机制,建(C\Users\Wypeng\Pictures\csdn\1)]
在这里插入图片描述

或者是 Required String parameter ‘xxx’ is not present错误

虽然不敢说以上两种错误的原因一定是这两个注解用错了导致的,但是大部分应该都是这个原因。所以今天对这两个注解做一下总结。

我之前的理解是@RequestBody是用来接收对象数据的,对应的请求应该为post请求,而且数据格式应该是json格式,当发送请求时,其内容会被封装到请求头中,不会被拼接到URL后面;而@RequestParam会被拼接到URL后面。很简单的理解,希望写完这篇文章之后能有些深刻的认识。

1.@RequestParam搭配GetMapping

这是实体类

在这里插入图片描述

这是后台

在这里插入图片描述

下面是postman的测试结果:

1.1 以键值对方式传参

结论:加不加注解都能接收

在这里插入图片描述

1.2 封装到body中以正常表单数据方式传参

结论:都可

在这里插入图片描述

1.3 封装到body中以json格式传参

结论:不可行

在这里插入图片描述

验证了一下,图中圈出的地方俊不可行

在这里插入图片描述

接收对象

经测试,Get请求无法通过@RequestParam接收参数

2.@RequestBody搭配GetMapping

后台接口如图:

在这里插入图片描述

2.1 以键值对方式传参

不可

在这里插入图片描述

2.2 封装到body中以正常表单数据方式传参

不可

在这里插入图片描述

2.3 封装到Body中以x-www-form-urlencoded格式传参

可行,但是此时接收的是键值对,需要对参数进行处理
在这里插入图片描述

2.4 封装到body中以json格式传参

同上

在这里插入图片描述

接收对象

只能接收json格式,其余均不可行

在这里插入图片描述

3 .@RequestBody搭配@PostMapping

3.1接收对象(不带@RequestBody注解)

除如图下方式,其他均可在这里插入图片描述

3.2 接收对象(带@RequestBody注解)

除如图下方式,其他均不可

在这里插入图片描述

@RequestParam搭配@PostMapping

1.1 接收对象

post请求无法通过@RequestParam接收对象

1.2 接收普通参数

除json外均可

结论:

@RequestParam用来接收普通参数,适用大部分

@RequestBody和post请求搭配使用,接收对象

欢迎指正

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值