java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > OpenFeign解决Get请求自动转化成POST

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: 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>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文