OpenFeign如何解决Get请求自动转化成POST的问题
作者:梁山教父
这篇文章主要介绍了OpenFeign如何解决Get请求自动转化成POST的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
一、问题
服务提供者
/**
* 获取用户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: true2、添加依赖
<!-- 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>总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
