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是目前使用体验最好的一个类库,如果是新项目推荐优先使用。

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

相关推荐
tellmewhoisi41 分钟前
多版本共用redis的token有效期校验(过期重新登录)
java·redis·缓存
疯狂打码的少年43 分钟前
【软件工程】结构化设计:模块独立性与耦合内聚
java·开发语言·笔记·软件工程
乐观的Terry1 小时前
3、数据库设计与领域实体
java·数据库·spring boot·spring cloud·ai编程
C++、Java和Python的菜鸟1 小时前
第4章 后端Web基础(基础知识)
java·开发语言
芷栀夏2 小时前
Java教育平台实战复盘:课程、考试与学习行为分析系统设计
java·开发语言·学习
维基框架2 小时前
维基框架(Wiki-Framework) 1.2.0:Mybatis 升级为主从读写分离
java·后端·架构
Memory_荒年2 小时前
Java函数式接口:把代码变成“拼乐高”的快乐,你体验过吗?
java
Memory_荒年2 小时前
WebSocket:让服务器学会“主动搭讪”的黑科技
java
Henrii_历小海3 小时前
WhatsApp Business API 2026 计费架构重构:从“对话计费“到“按消息计费“的技术实现与工程应对
java·重构·架构
炸薯条!3 小时前
从零开始学C++ (内存管理)
java·jvm·c++