Feign 中默认使用 JDK 原生的 URLConnection 发送 HTTP 请求,我们可以集成别的组件来替换掉 URLConnection,比如 Apache HttpClient,OkHttp。
Feign发起调用真正执行逻辑:feign.Client#execute (扩展点)
3.5.1 配置Apache HttpClient
引入依赖
<!-- Apache HttpClient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.7</version></dependency><dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId><version>10.1.0</version></dependency>
然后修改yml配置,将 Feign 的 Apache HttpClient启用
feign:#feign 使用 Apache HttpClient 可以忽略,默认开启httpclient:enabled: true
关于配置可参考源码: org.springframework.cloud.openfeign.FeignAutoConfiguration
测试:调用会进入feign.httpclient.ApacheHttpClient#execute
3.5.2 配置 OkHttp
引入依赖
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-okhttp</artifactId></dependency>
然后修改yml配置,将 Feign 的 HttpClient 禁用,启用 OkHttp,配置如下:
feign:#feign 使用 okhttphttpclient:enabled: falseokhttp:enabled: true
关于配置可参考源码: org.springframework.cloud.openfeign.FeignAutoConfiguration
测试:调用会进入feign.okhttp.OkHttpClient#execute
