HttpComponents: 概述

文章目录

        • [1. 概述](#1. 概述)
        • [2. 生态位](#2. 生态位)
1. 概述

早期的Java想要实现HTTP客户端需要借助URL/URLConnection或者自己手动从Socket开始编码,需要处理大量HTTP协议的具体细节,不但繁琐还容易出错。 Apache Commons HttpClient的诞生就是为了解决这个问题,它正是我们看到的Apache HttpComponents的前生。 Apache HttpComponents将Apache Commons HttpClient进一步做职责划分,将项目分成3个部分:

模块 说明
HttpCore HTTP协议解析、生成器的实现
HttpClient 提供基于BIO的HTTP客户端,适用于大数据量传输的请求
Async HttpClient 提供基于NIO的HTTP客户端实现,适用于高并发的客户端请求
2. 生态位
  • 早期的Java通过HttpURLConnection提供,支持有限的功能,使用复杂。
  • Java 11开始提供了自带HttpClient但是并不支持文件传输,大大限制了使用场景,而且国内很多公司还停留在Java 8,这也严重制约了它的发展和流行。
  • 因为出现的早,HttpComponents最广泛被采用的。成也萧何败萧何,早期的API略显迂腐,用起来并不是很舒服。
  • OkHttp是目前使用体验最好的一个类库,如果是新项目推荐优先使用。

下面的图是国外码农对现有常见类库的评测,选择的时候可以根据自己的使用场景确认是否符合需求。

相关推荐
小碗羊肉4 分钟前
【从零开始学Java | 第二十二篇】List集合
java·开发语言
m0_716765235 分钟前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
qqty121719 分钟前
springboot+mybaties项目中扫描不到@mapper注解的解决方法
java·spring boot·mybatis
灵魂猎手27 分钟前
14. MyBatis XML 热更新实战:告别重启烦恼
java·mybatis
程途知微27 分钟前
AQS 同步器——Java 并发框架的核心底座全解析
java·后端
WIN-U628 分钟前
新版华三H3C交换机配置NTP时钟步骤 示例(命令及WEB配置)
网络协议·tcp/ip·http
sunwenjian88633 分钟前
SpringBean的生命周期
java·开发语言
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于Java的游泳馆会员管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
侠客行03171 小时前
Tomcat 网络I/O模型浅析
java·tomcat·源码阅读
Yilena1 小时前
带你轻松学习LangChain4j
java·学习·langchain