これは、 https://github.com/searchbox-io/Jest/blob/master/jest/src/main/java/io/searchbox/client/http/JestHttpClient.javaのコードに関するものです 。
このコード スニペットでは
public <T extends JestResult> T execute(Action<T> clientRequest) throws IOException {
HttpUriRequest request = prepareRequest(clientRequest);
HttpResponse response = httpClient.execute(request);
return deserializeResponse(response, request, clientRequest);
}
private <T extends JestResult> T deserializeResponse(HttpResponse response, Action<T> clientRequest) throws IOException {
StatusLine statusLine = response.getStatusLine();
return clientRequest.createNewElasticSearchResult(
response.getEntity() == null ? null : EntityUtils.toString(response.getEntity()),
statusLine.getStatusCode(),
statusLine.getReasonPhrase(),
gson
);
}
応答を受け取った後、次のようなことをすべきではありません
response.close()
この特定のスタック オーバーフロー スレッドHttpClient 4.0.1 - 接続を解放するには? を使用して応答エンティティを消費することについて言及
EntityUtils.consume(HttpEntity)
するだけでEntityUtils.toString(response.getEntity())
十分ですか?