问题原因:
FeignClient最后是用HttpURLConnectiion发起的网络连接,在发起的过程中,Connection会判断其自身的body是否为空,如果不为空,则将 GET Method 转换为 POST Method
解决方法:
1、@RequestParam 多个参数
2、@SpringQueryMap DTO 参数
3、将Feign默认的HTTPURLConnection替换成HttpClient,具体方法如下
添加依赖
<!-- 配置feign 发送请求使用 httpclient,而不是java原生 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- 使用Apache HttpClient替换Feign原生httpclient -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>10.1.0</version>
</dependency>
添加配置
feign:
httpclient:
enabled: true

本文介绍了FeignClient在使用过程中GET方法被错误转换为POST方法的问题及其原因,并提供了三种解决方案,包括使用@RequestParam注解、@SpringQueryMapDTO注解以及更换HTTP客户端为HttpClient。
3716

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



