J'ai hérité du code
import org.Apache.http.client.HttpClient;
...
HttpClient httpclient = createHttpClientOrProxy();
...
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")) ) {
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;
}
httpClient.getParams()
est @Deprecated et lit "
HttpParams getParams()
Deprecated.
(4.3) use RequestConfig.
Il n'y a pas de documentation de classe pour RequestConfig et je ne sais pas quelle méthode doit être utilisée pour remplacer getParams()
et ConnRoutePNames.DEFAULT_PROXY
.
Vous utilisez la bibliothèque Apache HttpClient 4.3 avec le code Apache HttpClient 4.2.
Veuillez noter que getParams () et ConnRoutePNames ne sont pas les seules méthodes obsolètes dans votre cas. La classe DefaultHttpClient elle-même repose sur l'implémentation 4.2 et est également déconseillée dans 4.3.
En ce qui concerne la documentation 4.3 ici ( http://hc.Apache.org/httpcomponents-client-4.3.x/tutorial/html/connmgmt.html#d5e47 ), vous pouvez la réécrire de cette façon :
private HttpClient createHttpClientOrProxy() {
HttpClientBuilder hcBuilder = HttpClients.custom();
// Set HTTP proxy, if specified in system properties
if( isSet(System.getProperty("http.proxyHost")) ) {
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");
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
hcBuilder.setRoutePlanner(routePlanner);
}
CloseableHttpClient httpClient = hcBuilder.build();
return httpClient;
}
Il s'agit plus d'un suivi de la réponse donnée par @Stephane Lallemagne
Il existe un moyen beaucoup plus concis de faire en sorte que HttpClient récupère les paramètres du proxy système
CloseableHttpClient client = HttpClients.custom()
.setRoutePlanner(
new SystemDefaultRoutePlanner(ProxySelector.getDefault()))
.build();
ou ceci si vous voulez une instance de HttpClient entièrement configurée avec les valeurs par défaut du système
CloseableHttpClient client = HttpClients.createSystem();