ska*_*man 49

Commons HttpClient是一个产生HttpClient 3.1的旧项目.该项目是由较大的归入阿帕奇HttpComponents项目,它生产的HttpClient 4.x的.

这是相当混乱和有点政治,但旧的Commons HttpClient库现在已被弃用.


Ste*_*n C 14

这两个库之间有什么区别.

是.他们是非常不同的.包的名称在开始时是不同的,并且4.xAPI比3.xAPI 更丰富.

首先,4.xHttpClient API基于核心库,旨在支持HTTP的客户端和服务器端.该核心旨在支持阻塞I/O和事件驱动的I/O,并且AsyncHttpClient API顶级支持后者.该框架还有很多cookie管理,连接管理,客户端身份验证,代理路由,资源处理和流媒体等方式.

遗憾的是,这意味着为使用HttpClient 3.x而构建的代码需要重大改写才能使用HttpClient 4.x. 我想这是@skaffman提到的混乱和政治的根源.

但对我来说,最重要的是,如果你正在开发新项目,你应该使用HttpClient 4.x.

  • 我更喜欢3.x API.4.x API我发现令人困惑和巴洛克式,并且需要过多的配置来完成最简单的事情. (2认同)
  • @skaffman.HttpClient被各种不同的应用程序使用,这些应用程序具有不同的,通常相互冲突的要求:Web爬虫,HTTP加载工具,Web应用程序测试程序,Web服务传输,HTTP代理,网关等.创建适合所有这些应用程序域的通用API并且同时简单灵活,这是非常重要的.在4.x API开发灵活性的过程中,模块化和性能通常优于3.x代码行的简单性和兼容性. (2认同)