目录
- 一、问题
- 二、原因
- 三、解决方法
- 1、加入Feign的配置项
- 2、添加依赖
- 总结
一、问题
服务提供者
/** * 获取用户ID * @param token * @return */ @GetMapping("/getUserId") public String getUserId(@RequestParam(required = false) String token){ return userService.getUserId(token); }
服务调用
@Service @FeignClient(value = "auth-service") public interface AuthClient { /** * 获取用户ID * @param token * @return */ @GetMapping("/user/getUserId") public String getUserId(@RequestParam(required = false) String token); }
会自动讲get请求转为post请求
二、原因
因为Feign默认使用的连接工具实现类,所以里面发现只要你有body体对象,就会强制的把GET请求转换成POST请求。
三、解决方法
更换Apache的HttpClient
1、加入Feign的配置项
feign: httpclient: enabled: true
2、添加依赖
<!-- httpclient5 --> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> </dependency> <!-- feign-httpclient --> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。
您可能感兴趣的文章:
- SpringCloud OpenFeign Post请求400错误解决方案
- SpringCloud组件OpenFeign之默认HTTP请求方式详解
- OpenFeign实现携带请求头方案详细介绍
- OpenFeign调用服务请求头丢失Token的解决
- openFeign服务之间调用保持请求头信息处理方式