创建HTTP连接并使其保持打开状态以接收数据

时间:2015-01-07 23:25:48

标签: java http apache-httpclient-4.x

我需要通过HTTP连接到服务器并维护该连接,以便服务器可以定期向我发送数据。服务器将以json格式发送数据。服务器是一个封闭的系统,这就是我被要求与之通信的方式。

这样做的最佳方法是什么?我可以使用UrlConnection或Apache的HttpClient来实现这一目标吗?有没有人有我可以使用的样本代码或文章?

1 个答案:

答案 0 :(得分:1)

使用传统的HTTP技术,您只能进行轮询,这意味着您要求服务器“提供更多数据”。服务器可以等待一段时间没有数据(这称为“长轮询”)。这应该是一个很短的时间,所以它适用于中间的东西,终止太长的http请求。稍微复杂的版本是在新数据可用时发送分块响应并发送块。在这两种情况下,您都需要处理断开的连接并重新查询。

有一些框架隐藏了这一点。较新的技术将使用WebSockets,但客户端和服务器必须支持它。

BTW:通常http客户端库“确实保持连接打开”,这称为http keep-alive,但这并没有直接帮助你,因为HTTP总是需要一个请求来回答。

你没有说出你真正想要/需要做什么。因此很难推荐任何东西。但是如果你不了解HTTP协议的细节,最好不要自己实现它。