无效的HTTP方法:PATCH>执行PATCH:引起:feign.RetryableException:

use*_*185 16 netflix-feign

我们正在使用netflix feign打电话给宁静的网络服务.对于补丁请求,它看起来不支持PATCH请求.

引起:feign.RetryableException:无效的HTTP方法:PATCH 在feign.FeignException.errorExecuting(FeignException)执行PATCH https://projects.dev.xyz.com/projects/v1/users/ {uid}/projects/{guid}. java:66)at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:100)at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:74)at feign.hystrix.HystrixInvocationHandler $ 1.run(HystrixInvocationHandler.java:54)at com.netflix .hystrix.HystrixCommand $ 1.call(HystrixCommand.java:294)

Dir*_*irk 12

如果有人遇到spring-cloud- feign 的同样问题,可以通过添加maven依赖来实现使用假装的httpClient:

    <dependency>
        <!-- Required to use PATCH -->
        <groupId>io.github.openfeign</groupId>
        <artifactId>feign-httpclient</artifactId>
        <version>${feign.version}</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)


Ada*_*ich 10

您可以使用feign中的httpClient来解决此问题.您希望首先将模块添加到类路径中,然后在构建对象时对其进行配置 Feign.builder().client(new ApacheHttpClient()).这增加了对PATCH请求的支持.

链接到Doc:https://github.com/Netflix/feign/tree/master/httpclient

编辑:还有一个假装对象包装apache的http客户端,链接在这里