HttpComponents: 概述

文章目录

        • 1. 概述
        • 2. 生态位

1. 概述

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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265868.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用PHP和HTML做登录注册操作数据库Mysql

用PHP和HTML做登录注册操作数据库Mysql 两个HTML页面&#xff0c;两个PHP,两个css,两张图片&#xff0c;源码资源在上方。 目录 HTML页面 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta nam…

初识人工智能,一文读懂强化学习的知识文集(5)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

基于SSM的酒店管理旅店系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

基于vue开发 - 编写登录页面样式

vue创建项目&#xff0c;使用可视化界面安装插件-CSDN博客 使用vue UI安装路由插件-CSDN博客 基于vue开发-创建登录页-CSDN博客 在src/views文件夹中创建登录页面login.vue&#xff0c;在router/index.js文件中加入登录页的路由&#xff0c;然后在浏览器中输入登录页的路径就…

java--StringBuilder、StringBuffer、StringJoiner

1.StringBuilder ①StringBuilder代表可变字符串对象&#xff0c;相当于是一个容器&#xff0c;它里面装的字符串是可以改变的&#xff0c;就是用来操作字符串的。 ②好处&#xff1a;StringBuilder比String更适合做字符串的修改操作&#xff0c;效率会比更高&#xff0c;代码…

中文读唇总动员:CNVSRC 2023 研讨会圆满落幕

12月9日晚&#xff0c;NCMMSC-CNVSRC 2023 学术研讨会在苏州召开的第十八届全国人机语音通讯学术会议&#xff08;NCMMSC 2023&#xff09;举办&#xff0c;会上公布了本次视觉语音识别竞赛 CNVSRC 2023 的最终结果&#xff0c;并举行颁奖仪式。 本次竞赛由 NCMMSC 2023组委会…

【C知道】帮我答疑解惑:java的entity字段是map,如何映射到数据库

目录 一、问题场景描述 二、跟【C知道】第一次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff09;我说 三、跟【C知道】第二次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff0…

大厂外包干了2个月,技术明显进步了...

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年8月份&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

实现加盐加密方法以及MappedByteBuffer,RandomAccess

目录 自己实现 Spring Security MappedByteBuffer RandomAccess 加盐加密的实现 自己实现 传统MD5可通过彩虹表暴力破解&#xff0c; 加盐加密算法是一种常用的密码保护方法&#xff0c;它将一个随机字符串&#xff08;盐&#xff09;添加到原始密码中&#xff0c;然后再进…

四十四、Redis的数据持久化(RDB、AOF)

目录 一、定义 二、RDB 1、默认方案&#xff1a; 2、bgsave方案&#xff1a; 3、bgsave的基本流程&#xff1a; 4、RDB会在什么时候执行&#xff1f;save 60 1000代表什么含义&#xff1f; 5、RDB的缺点&#xff1a; 三、AOF 1、定义&#xff1a; 2、流程&#xff1a;…

C++——继承

目录&#xff1a; 继承的概念及定义 面向对象的三个基本特征&#xff1a;封装、继承、多态。在前面的讲解中封装已经用的很多了&#xff0c;那么接下来的两篇文章就来介绍一下继承和多态。 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&am…

虾皮选品:如何在虾皮平台上进行选品以提高销售额和利润

在虾皮&#xff08;Shopee&#xff09;平台上进行选品时&#xff0c;可以遵循以下策略和技巧&#xff0c;以便找到有潜力的产品并提高销售额。 先给大家推荐一款shopee知虾数据运营工具 知虾免费体验地址&#xff08;复制浏览器打开&#xff09;&#xff1a;d.ddqbt.com/JU5o …