RequestBody和RequestParam的区别

本文探讨了RequestBody和RequestParam在API中的不同行为,包括数据类型限制、验证结果和适用场景。RequestBody主要处理x-www-form-urlencoded和raw数据,而RequestParam则适用于所有请求类型,包括URL参数和各种格式的POST数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结论

RequestBody

RequestBody接收来自POST请求并且类型为x-www-form-urlencoded类型或者raw(JSON格式)的数据,使用GET请求或者POST请求的其他类型的数据(特指form-data) 会直接返回400(Bad Request) (你的控制器controller里的方法并不会收到请求)

RequestParam

RequestParam接收GET和POST请求的所有类型的参数,包括GET请求的URL参数,POST请求的form-data, x-www-form-urlencoded 和raw(只是这里的raw不能填json格式的数据,它会找不到数据,需要填写k1=v2&k2=v2这种格式的数据);

验证过程:

RequestBody

编写控制器
在这里插入图片描述

GET请求返回400错误
在这里插入图片描述

POST(form-data) 400错误
在这里插入图片描述

当返回400错误时,控制台只会提示一个警告并不会输出收到请求的内容
在这里插入图片描述

POST(x-www-form-urlencoded) 成功
在这里插入图片描述

POST(raw) 成功
在这里插入图片描述

RequestParam

修改RequestBody为RequestParam并重新启动项目
在这里插入图片描述

GET url传递参数 成功
在这里插入图片描述

POST(form-data) 成功
在这里插入图片描述

POST(x-www-form-urlencoded) 成功

在这里插入图片描述

POST(raw_json) 失败
在这里插入图片描述

POST(raw_k_v) 成功

在这里插入图片描述

如有纰漏,请斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值