我们目前使用Apache HttpClient
(5)向服务器发送POST
请求,响应通过服务器端事件(SSE)返回给我们,SSE包含多个有效负载,使用标准格式:
data: {...}
目前我们有这样的代码发送请求和接收响应:
// Set the socket timeout
final ConnectionConfig connConfig = ConnectionConfig.custom()
.setSocketTimeout(socketTimeout, TimeUnit.MILLISECONDS)
.build();
// Custom config
final BasicHttpClientConnectionManager cm = new BasicHttpClientConnectionManager();
cm.setConnectionConfig(connConfig);
// Build the client
try (final CloseableHttpClient client = HttpClientBuilder.create().setConnectionManager(cm).build()) {
// Execute the request
return client.execute(request.getRequest(),
// Get and process the response
response -> HttpResponse.builder()
.withCode(response.getCode())
.withContent(EntityUtils.toByteArray(response.getEntity()))
.build()
);
}
这一切都工作得很好,除了我需要在响应到达时访问响应中的各个传入响应有效负载(data {...}
),而不是等待它们全部完成才能访问响应。
如果使用Apache这是不可能的,我愿意接受其他的选择,只要他们可以发送一个正常的HTTP(S)POST
。
1条答案
按热度按时间k97glaaz1#
好吧,我不能让它与
Apache Client
一起工作,但我确实找到了这个video,它展示了如何使用本机HttpClient
来完成它。