首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java Http客户端选型

Java Http客户端选型

作者头像
编程随笔
发布2022-09-27 19:06:18
发布2022-09-27 19:06:18
1.8K0
举报
文章被收录于专栏:后端开发随笔后端开发随笔

JDK自带

HTTPURLConnect:功能单一

Apache HttpClient

https://hc.apache.org/index.html

是一个比较古老的HTTP框架,使用非常普遍。

OkHTTP

https://square.github.io/okhttp/

HTTP框架新秀,具备一些新特性,如:支持HTTP2,连接池,响应缓存等。

Netty

https://netty.io/

基于原始套接字实现的比较底层的网络编程库。

REST Template & WebClient

https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#spring-integration

Spring Framework提供的REST客户端,实际上是一个框架级的封装,底层的通信实现可以基于HTTPURLConnection,Apache HttpClient,OKHttp,以及Netty,当项目中使用了Spring框架时可以直接使用该API。

缺点:与Spring框架绑定, 必须使用Spring框架才能使用该API。

Feign

https://github.com/OpenFeign/feign

Feign跟Spring Framework中提供的RestTemplate类似,也是一个框架级的封装,而且是一个完全可以基于注解配置的API库。

底层的通信实现也可以基于HTTPURLConnection,Apache HttpClient,OKHttp,甚至是Java11 Http2。

同时,Feign还提供了一些在业务层非常方便使用的特性,如:重试,请求参数编码器,响应结果编码器等等。

相比起上述其他客户端而言,Feign提供的特性更加便于业务层使用。

另外,Spring Cloud框架还将Feign与Spring进行了集成,独立出一个新的模块:spring-cloud-openfeign

当在项目中没有使用Spring Framework时,可以独立使用Feign框架。

如果在项目中已经使用Spring Framework,最便利的方式是直接使用spring-cloud-openfeign,该模块已经提供了一些在Spring容器环境下使用Feign框架的注解,可以大大提高生产效率。

关于Feign的使用可以参考:Feign入门介绍Feign实现动态URLFeign实现文件上传下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDK自带
  • Apache HttpClient
  • OkHTTP
  • Netty
  • REST Template & WebClient
  • Feign
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档