【发布时间】:2018-08-02 09:25:51
【问题描述】:
我正在使用 CloseableHttpResponse(来自 apache-httpclient-4.5.3),但我不确定我是否正确使用它,我看到 answer with no votes 最终使用 EntityUtils.consume:
CloseableHttpResponse response1 = httpclient.execute(httpGet); try { System.out.println(response1.getStatusLine()); } finally { EntityUtils.consume(response1.getEntity());
CloseableHttpClient 是抽象的,没有可调用的关闭方法,尽管在此 answer 中使用了它:
CloseableHttpResponse response = httpclient.execute(httpget);
try {
//do something
} finally {
response.close();
}
目前我在发送方法中使用 CloseableHttpClient 和 CloseableHttpResponse 的资源。
我没有错过任何打开的资源或以错误的方式使用它吗?
private CloseableHttpResponse send()
throws URISyntaxException, UnsupportedEncodingException, IOException, ClientProtocolException {
URIBuilder uriBuilder = new URIBuilder(BASE_URL);
HttpHost target = new HttpHost(uriBuilder.getHost(), uriBuilder.getPort(), uriBuilder.getScheme());
HttpPost post = new HttpPost(uriBuilder.build());
try (CloseableHttpClient httpClient = HttpClients.custom().build(); CloseableHttpResponse response = httpClient.execute(target, post)) {
return response;
}
【问题讨论】:
标签: java apache-httpclient-4.x resource-cleanup autocloseable