web-dev-qa-db-ja.com

httpClient.getConnectionManager()は非推奨です-代わりに何を使用すべきですか?

私はコードを継承しました

_import org.Apache.http.client.HttpClient;
...
HttpClient httpclient = createHttpClientOrProxy();

    try {
        HttpPost postRequest = postRequest(data, url);
        body = readResponseIntoBody(body, httpclient, postRequest);
    } catch( IOException ioe ) {
        throw new RuntimeException("Cannot post/read", ioe);
    } finally {
        httpclient.getConnectionManager().shutdown();  // ** Deprecated
    }


private HttpClient createHttpClientOrProxy() {
    HttpClient httpclient = new DefaultHttpClient();

    /*
     * Set an HTTP proxy if it is specified in system properties.
     * 
     * http://docs.Oracle.com/javase/6/docs/technotes/guides/net/proxies.html
     * http://hc.Apache.org/httpcomponents-client-ga/httpclient/examples/org/Apache/http/examples/client/ClientExecuteProxy.Java
     */
    if( isSet(System.getProperty("http.proxyHost")) ) {
        log.warn("http.proxyHost = " + System.getProperty("http.proxyHost") );
        log.warn("http.proxyPort = " + System.getProperty("http.proxyPort"));
        int port = 80;
        if( isSet(System.getProperty("http.proxyPort")) ) {
            port = Integer.parseInt(System.getProperty("http.proxyPort"));
        }
        HttpHost proxy = new HttpHost(System.getProperty("http.proxyHost"), port, "http");
// @Deprecated methods here... getParams() and ConnRoutePNames
        httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }
    return httpclient;
}
_

getConnectionManager()読み取り "

_@Deprecated
ClientConnectionManager getConnectionManager()

Deprecated. (4.3) use HttpClientBuilder.
Obtains the connection manager used by this client.
_

HttpClientBuilderのドキュメントはまばらで、単純に次のように述べています。

_Builder for CloseableHttpClient instances.
_

ただし、HttpClientCloseableHttpClientに置き換えると、メソッドはまだ_@Deprecated_のように見えます。

非推奨のメソッドを使用するにはどうすればよいですか?

25

HttpClientの新しいインスタンスを作成する代わりに、Builderを使用します。 CloseableHttpClientを取得します。

例:使用法:

CloseableHttpClient httpClient = HttpClientBuilder.create().setProxy(proxy).build()

GetConnectionManager()。shutdown()を使用する代わりに、CloseableHttpClientで代わりにclose()メソッドを使用します。

36
SiN