같은 질문을했습니다. 다른 답변은 close ()가 정말로 필요한 이유를 다루지 않는 것 같습니다. 또한 Op는 HttpClient 등으로 작업하는 데 선호되는 방법을 파악하는 데 어려움을 겪고있는 것 같습니다.
Apache 에 따르면 :
또한 관계는 다음과 같이 진행됩니다.
HttpClient
(상호 작용)
구현 :
CloseableHttpClient
-ThreadSafe.
DefaultHttpClient
- 스레드하지만 사용되지는 사용 HttpClientBuilder
대신.
HttpClientBuilder
-ThreadSafe는 아니지만 ThreadSafe를 만듭니다 CloseableHttpClient
.
- CUSTOM을 만드는 데 사용합니다
CloseableHttpClient
.
HttpClients
-ThreadSafe는 아니지만 ThreadSafe를 만듭니다 CloseableHttpClient
.
- DEFAULT 또는 MINIMAL을 만드는 데 사용합니다
CloseableHttpClient
.
Apache에 따른 선호하는 방법 :
CloseableHttpClient httpclient = HttpClients.createDefault();
그들이 제공 하는 예httpclient.close()
는 finally
절에서 수행되며 또한 사용 ResponseHandler
합니다.
대안으로 mkyong이하는 방식도 약간 흥미 롭습니다.
HttpClient client = HttpClientBuilder.create().build();
그는 client.close()
전화를 표시하지 않지만 client
여전히의 인스턴스 이기 때문에 필요하다고 생각합니다 CloseableHttpClient
.