2016-03-17 2 views
0

У меня возникла проблема с простой программой, использующей Java HttpClient от Apache, в которой все запросы, отправленные с прокси-сервера, истекают (java.net.ConnectException). Я убедился, что все прокси в списке работают, так что это не проблема. Вот мой код:Java Apache HttpClient - прокси не отвечает

HttpHost proxy = new HttpHost(ip, port, "http"); // the vars ip and port are taken from the function this is in 
DefaultHttpClient httpclient = new DefaultHttpClient(); 
final HttpGet request = new HttpGet(
     "http://www.mysitehere.com"); // And yes, my url works and is not timing out from browser 
request.addHeader(
     "User-Agent", 
     "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"); 
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, 
     proxy); 
HttpResponse response = httpclient.execute(request); // This code times out. 

Любая помощь с благодарностью, спасибо!

Edit: Пример IP и порт:

"101.96.11.10":"80" 

ответ

0

Вы можете указать прокси-сервер для каждого запроса с помощью DynamicProxyRoutePlanner:

PoolingHttpClientConnectionManager http 
... 
     this.http = new PoolingHttpClientConnectionManager(); 
     this.http.setMaxTotal(10); 
     this.http.setDefaultMaxPerRoute(10); 
     this.http.setValidateAfterInactivity(10000); 
... 
HttpHost proxy = new HttpHost(ADDRESS, PORT); 
DynamicProxyRoutePlanner routePlanner = new DynamicProxyRoutePlanner(proxy); 
HttpClients.custom() 
       .setConnectionManager(http) 
       .setDefaultRequestConfig(getRequestConfig(timeout)) 
       .setRoutePlanner(routePlanner) 
       .setConnectionManagerShared(true) 
       .build(); 
... 
private static RequestConfig getRequestConfig(int timeout) { 
    return RequestConfig.copy(RequestConfig.DEFAULT) 
    .setConnectTimeout(timeout) 
    .setConnectionRequestTimeout(timeout) 
    .setSocketTimeout(timeout) 
    .setContentCompressionEnabled(true) 
    .setRedirectsEnabled(true) 
    .setMaxRedirects(10) 
    .build(); 
} 
Смежные вопросы