当使用Feign时,如果是get请求,为什么参数要加@RequestParam注解?

原因:

因为Feign默认使用Spring的编码器来序列化请求参数,而Spring的编码器需要明确指定参数名称才能正确地将参数序列化成URL参数。如果不加@RequestParam注解,Feign将无法正确地序列化请求参数,导致请求失败。

如果是get请求

可以有多个@RequestParam,不能有@RequestBody

如果是post请求

可以有多个@RequestParam,但最多只能有一个@RequestBody,

@RequestBody用来修饰对象

如果既有@RequestBody也有@RequestParam

参数就要放在请求的url中,@RequestBody修饰的就要放在提交对象中

使用@RequestParam注解,Spring会将所有的参数封装到Map<String,Object>对象:

当使用@RequestBody注解时,Spring会将请求体中的数据以流的形式读取,然后使用HttpMessageConverter将其反序列化为指定的对象类型。

@RequestParam Content-Type : application/x-www-form-urlencoded  (默认)

@RequestBody Content-Type : application/json、application/xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

忧郁的叮当猫

Thanks♪(・ω・)ノ

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

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

打赏作者

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

抵扣说明:

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

余额充值