【发布时间】:2020-05-18 15:07:44
【问题描述】:
英国的Companies House 最近发布了HTTP 'stream' webservice,让开发人员可以无限期地听取公司的变更。
下面是他们帮助页面的重要部分
建立与流式传输 API 的连接需要创建一个 长时间运行的 HTTP 请求,并逐步处理每个响应 线。从概念上讲,您可以将其视为无限下载 HTTP 上的长文件。
使用 Apache HTTP 客户端,我可以使用以下 kotlin 代码在 http 客户端库的调试控制台输出中看到公司更改的“流”
val httpClient = HttpClients.createDefault()
val request = HttpGet("https://stream.companieshouse.gov.uk/companies")
request.addHeader("Authorization", "xxxxxxxxxxxxx");
httpClient.execute(request).use { response1 ->
val entity: HttpEntity = response1.entity
entity.content?.use { inputStream -> println("output-->" + String(inputStream.readAllBytes())) }
}
但是,我的控制台输出永远不会被命中(即上面的'output-->'的打印字符串)
问题:使用 Apache HTTP 客户端,是否可以使用无限期的 HTTP Get 连接?如果是这样,怎么做?
【问题讨论】:
标签: java kotlin httpclient apache-httpclient-4.x