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

Creating a HTTP connecting and keeping it open to recieve data

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

执行此操作的最佳方法是什么?我可以使用 UrlConnection 或者 Apache 的 HttpClient 来实现这个吗?有没有人有我可以使用的示例代码或文章?

使用传统的 HTTP 技术,您只能进行轮询,这意味着您向服务器请求 "do you have more data"。服务器可以在没有数据时等待一段时间(这称为 "long polling")。这应该是一个很短的时间,因此它可以处理终止太长的 http 请求的东西。稍微复杂一点的版本是发送分块响应,并在新数据可用时发送分块。在这两种情况下,您都需要处理断开的连接并重新查询。

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

顺便说一句:通常是 http 客户端库 "do keep the connection open",这称为 http keep-alive,但这并不能直接帮助你,因为 HTTP 总是需要一个请求来响应。

你没有说你实际上 want/need 做什么。所以很难推荐任何东西。但是,如果您不了解 HTTP 协议的具体细节,最好不要自己实现它。