基于Java的HTTP客户端,支持流水线

时间:2010-05-05 21:43:35

标签: java http sockets

您知道任何支持HTTP / 1.1(http://en.wikipedia.org/wiki/HTTP_pipelining)的HTTP流水线选项的免费Java库吗?

5 个答案:

答案 0 :(得分:1)

我认为你不会发现任何支持管道衬里的常见产品。 Jetty HttpClient似乎从文档中支持它,但我无法做到这一点。

请注意,Pipeline与keep-alive不同。保持活动只意味着重用连接,但它仍然可以通过连接一次只发送一个请求。使用管道衬里,您可以通过同一连接同时发送多个请求,并等待各自的响应。

答案 1 :(得分:1)

HTTPClient显然支持流水线操作:

http://www.innovation.ch/java/HTTPClient/

但我没有亲自尝试过,也无法验证这一点。

答案 2 :(得分:0)

hotpotato即将支持流水线真正。性能方面,它优于Apache的HTTP客户端,特别是在高并发环境中(使用相同客户端实例的多个线程)。

我仍然需要发布结果,但在LAN测试中,我得到~7000req / s(hotpotato)vs~100req / s(apache's)。当然,必须要有很多优点去Netty,这个惊人的框架hotpotato建立在它之上;)

如果您不需要一个花哨的成熟客户端,请查看here以获得更简单的版本。

答案 3 :(得分:0)

我意识到我的答案大约有一年了,但由于这是“java http pipelining”的顶级链接之一,我认为这是相关的。

Hotpotato确实现在支持流水线操作,而且在我有限的经验中,它到目前为止一直很好用。还有一个很好的API来启动。

http://hotpotato.biasedbit.com/

编辑:看起来这个项目现在没有维护,作者推荐Async HTTP客户端:https://github.com/ning/async-http-client/

答案 4 :(得分:0)

Apache HttpComponents Core 5 支持 HTTP/1.1 流水线。该示例可以在 here 中找到。