Как видно из быстрого запуска httpclient-4.5.x , "Чтобы гарантировать правильное освобождение системных ресурсов, пользователь ДОЛЖЕН вызывать CloseableHttpResponse # close () из предложения finally."
Но давайте проверим код HttpRequestBase # releaseConnection (). В аннотации сказано: «Удобный метод для упрощения перехода с API HttpClient 3.1. Этот метод эквивалентен {@link #reset ()}."
public abstract class HttpRequestBase extends AbstractExecutionAwareRequest
implements HttpUriRequest, Configurable {
......
/**
* A convenience method to simplify migration from HttpClient 3.1 API. This method is
* equivalent to {@link #reset()}.
*
* @since 4.2
*/
public void releaseConnection() {
reset();
}
....
}
Я хочу спросить, теперь нам нужно только вызовите CloseableHttpResponse # close () из предложения finally для освобождения ресурса, тогда для чего используется HttpRequestBase # releaseConnection ()? для чего используется AbstractExecutionAwareRequest # reset ()? Когда мы должны использовать HttpRequestBase # releaseConnection () или AbstractExecutionAwareRequest # reset ().