私はコードを継承しました
_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.
_
ただし、HttpClient
をCloseableHttpClient
に置き換えると、メソッドはまだ_@Deprecated
_のように見えます。
非推奨のメソッドを使用するにはどうすればよいですか?
HttpClientの新しいインスタンスを作成する代わりに、Builderを使用します。 CloseableHttpClientを取得します。
例:使用法:
CloseableHttpClient httpClient = HttpClientBuilder.create().setProxy(proxy).build()
GetConnectionManager()。shutdown()を使用する代わりに、CloseableHttpClientで代わりにclose()メソッドを使用します。