spring cloud feign 调用相关坑记录以及注意事项总结

本文探讨了FeignClient在使用@RequestParam和@RequestBody时遇到的问题,特别是当定义为GET方法却执行POST请求时的解决办法。文章指出只有httpclient支持@RequestBody+RequestMethod.GET,并提供了引入相关依赖的方法。

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

1.feign client 调用端List类型用@RequestParam 服务端用 @RequestParam 接收参数

2.feign client 端参数为实体类传递用@RequestBody,服务端用@RequestBody接收参数

3. Connection refused: connect executing POST 错误时因为

很明显是最终feign执行http请求时把这个方法认定为POST,但feign client中又定义了RequestMethod.GET 或 @GetMapping,冲突导致报错

那么为什么feign会认为这个方法是post呢?

根据http协议定义是支持@RequestBody+ RequestMethod.GET的,那么具体就得看工具包实现的不同的,查看源码发现okhttpHttpURLConnection都不支持(报错),只有httpclient支持。(默认走HttpURLConnection会报错

我们知道只有httpclient支持@RequestBody+ RequestMethod.GET,所以我们必须满足条件走HttpClientFeignLoadBalancedConfiguration才

需要引入pom依赖

<dependency>
     <groupId>io.github.openfeign</groupId>
     <artifactId>feign-httpclient</artifactId>
 </dependency>

具体请查看:https://www.cnblogs.com/dennyzhangdd/p/7978454.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值