没有合适的资源?快使用搜索试试~ 我知道了~
[享学Feign] 九、Feign + OkHttp和Feign + Apache HttpClient哪个更香?
8 下载量 113 浏览量
2021-01-07
15:59:30
上传
评论
收藏 198KB PDF 举报
温馨提示
试读
5页
Redis作者说到:“灵活性被过分高估–>约束才是解放”。 –> 返回专栏总目录 <– 代码下载地址:https://github.com/f641385712/feign-learning 目录前言正文OkHttp使用示例源码解析Apache HttpClient使用示例源码解析GoogleHttpClient哪个更香?总结声明 前言 前八篇文章介绍完了feign-core核心内容,从本篇开始将介绍它的“其它模块”。其实核心模块可以独立的work,但是不免它的能力偏弱,比如只能编码字符串类型、只能解码字符串类型,默认使用java.net.HttpURLConnection作为HC… 本篇将
资源推荐
资源详情
资源评论
[享学享学Feign] 九、九、Feign + OkHttp和和Feign + Apache
HttpClient哪个更香?哪个更香?
Redis作者说到:“灵活性被过分高估–>约束才是解放”。
–> 返回专栏总目录 <–
代码下载地址:https://github.com/f641385712/feign-learning
目录目录前言正文OkHttp使用示例源码解析Apache HttpClient使用示例源码解析GoogleHttpClient哪个更香?总结声明
前言前言
前八篇文章介绍完了feign-core核心内容,从本篇开始将介绍它的“其它模块”。其实核心模块可以独立的work,但是不免它的
能力偏弱,比如只能编码字符串类型、只能解码字符串类型,默认使用java.net.HttpURLConnection作为HC…
本篇将介绍它的第一个模块:Client相关模块。我们知道,流行的开源Http库的性能均远高于JDK源生的HttpURLConnection,因
此实际生产中肯定是肯定是用的三方库来发送Http请求。
Feign它提供了feign.Client抽象来发送Http请求,因此使得它拥有良好的扩展性,而恰好Feign的子模块里亦提供了对OkHttp以
及Apache HttpClient的整合,本文将教你如何把Feign切换为第三方HC以提高性能。
正文正文
我们知道Feign在默认情况下,它发送Http请求使用的是JDK源生的HttpURLConnection。而在实际生产环境下,直接使用它
是100%不可取的不可取的,这就需要我们使用更加高效更加高效的HC。
Feign的模块中有三个关于HC的子模块:feign-okhttp、feign-httpclient、feign-googlehttpclient。本文将会讨论前两者
OkHttp
它的GAV如下:
io.github.openfeign
feign-okhttp
${feign.version}
“携带”的okhttp版本号是:3.6.0。(若把Feign调整到最新版本10.7.4,那么它携带的okhttp版本号也就是最新的3.14.6的了)
说明:okhttp虽然目前最新版本是4.x版本的,关于区别你可以简单粗暴的理解:前者是用前者是用kotlin改写了,后者还是用改写了,后者还是用Java写写
的的,其它的并无什么变化。
所以,在Server端使用okhttp,请务必使用3.x版本~移动端可酌情使用4.x版本
通过前八篇文章对Feign核心内容核心内容的学习,知道Feign最终是通过它的feign.Client这个API去发送远程请求的,而feign.Client是可
以在构建的时候在构建的时候由使用者自定义指定的。有了以上理论的支撑,若想切换最终发送Http请求的HC,仅需在构建时使用自己仅需在构建时使用自己
的的feign.Client即可即可。
使用示例使用示例
public interface DemoClient {
@RequestLine("GET /feign/demo1?name={name}")
String getDemo1(@Param("name") String name);
}
构建Feign时,指定使用OkHttpClient:
public static void main(String[] args) {
DemoClient client = Feign.builder()
.client(new OkHttpClient()) // 显示指定使用OkHttpClient
.target(DemoClient.class, "http://localhost:8080");
String result = client.getDemo1("YourBatman");
System.out.println(result);
}
一切正常work。附如下截图,以证明确实是okhttp在生效:
资源评论
weixin_38735119
- 粉丝: 7
- 资源: 876
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功