PoolingClientConnectionManager 및 BasicResponseHandler과 함께 DefaultHttpClient 아파치를 사용하고 있습니다. 이들은 서로 다른 스레드간에 공유되며 각 스레드는 고유 한 HttpRequestBase 확장을 생성합니다.PoolingClientConnectionManager를 사용할 때 연결을 해제 하시겠습니까?
BasicResponseHandlers를 사용할 때 연결을 사용하여 관리자에게 수동으로 알려야합니까? 마지막으로 연결 랩에 넣을 필요가 없으므로 연결 유출이 발생하지 않습니까?
즉, 나는이
HttpGet get = new HttpGet(address);
try {
httpclient.execute(get, new BasicResponseHandler());
} finally {
get.reset();
}
을 할 필요가 또는이 충분히입니다합니까?
HttpGet get = new HttpGet(address);
httpclient.execute(get, new BasicResponseHandler());
나는이 충분하고 좋습니다 Apache documentation.
이것은 내 가정 이었지만 더 나은 설명이나 권위있는 소스에 대한 링크를보고 싶습니다. – Eyal
@Eyal http://hc.apache.org/httpcomponents-client-ga/examples.html의 'Response handling'에 대한 의견을 참조하십시오. – oleg
@oleg 그러나이 예는 단일 스레드이며, 그 예는 (finally 절은 연결의 해제가 보장됩니다. 나는 ConnectionHandler의 작업 중에 연결 관리자가 연결이 여전히 사용 중이라고 생각하게하는 예외가 있다고 걱정한다. – Eyal