【发布时间】:2020-04-17 17:43:04
【问题描述】:
我在尝试使用持续流式传输实时事件的 HTTP 端点的响应时遇到问题。它实际上是 Docker 的端点之一:https://docs.docker.com/engine/api/v1.40/#operation/SystemEvents
我使用的是 Apache HTTP Client 4.5.5,当我尝试使用 InputStream 内容时它会无限期停止:
HttpEntity entity = resp.getEntity();
EntityUtils.consume(entity);//it just hangs here.
//Even if I don't call this method, Apache calls it automatically
//after running all my ResponseHandlers
显然,可以通过使用JDK的原始URL:Stream a HTTP response in Java来完成
但我不能这样做,因为本地 Docker 通过 Unix 套接字进行通信,我只设法在 Apache 的 HTTP 客户端中使用 Java 中的 Unix 套接字的第 3 方库进行配置。
如果我可以切换到更智能的 HTTP 客户端库,那也是一个选择。
任何想法将不胜感激。谢谢!
【问题讨论】:
标签: docker http java-8 stream apache-httpclient-4.x