原因:
因为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
2003

被折叠的 条评论
为什么被折叠?



