SpringMVC的@RequestParam和@RequestBody有什么区别?postman的Params和Body传参有什么区别?
来源:5-4 开发添加分类接口 part 2
hpr456
2022-12-02 20:03:03
相关截图:
问题描述:
问题1:SpringMVC的@RequestParam和@RequestBody注解有什么区别?这两个注解各自适用于什么情况?能不能详细解释一下?我在网上搜了,看不懂,只知道RequestParam可用于get和post请求参数,RequestBody只能用于post请求参数。
问题2:postman的Params和Body传参有什么区别?get请求的参数拼接在请求头的URL上,post请求的参数放在请求体里。postman的Params是把参数拼接在请求的URL上,Body是把参数放在请求体里。按理说get请求只能用Params传参,post请求只能用Body传参,不是吗?那为什么在注册新用户、登录、更新个性签名这3个请求,post也可以用Params传参啊?
1回答
好帮手慕小脸
2022-12-03
同学你好,
1、简单理解就是,在GET请求中,没有请求体,不适合使用@RequestBody,适合使用@RequestParam。这里同学理解是没有问题的
其次在POST请求,可以使用@RequestBody和@RequestParam,但是如果使用@RequestBody,对于参数转化的配置必须统一,如果要发送的数据比较多时,适合使用@RequestBody。
注:在后端的同一个接收方法里,@RequestBody与@RequestParam可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
2、
1)理解没有问题,但过于绝对,params传参一般用于get请求,传参时参数会附于url后面以问号形式展示,而post请求在body中传参的安全性会比get请求高,post会用body中的json数组来传参给后台,url中不可见
2)这里可以记住POST请求,在body中写参数 , 也可以在params中写参数,使用body传值的话,接口定义的时候参数就是@RequestBody,而使用param传值的话,后台接口是@RequestParam
注:同学感兴趣的话,可以搜索这部分内容进行详细了解~
祝学习愉快~