2011-02-10 3 views
23

Я пытаюсь установить некоторые параметры на сервер, но мне нужно настроить прокси. можете ли вы помочь мне сортировать его «настройка прокси» в моем коде?Apache HttpClient 4.1 - Настройки прокси

HttpHost proxy = new HttpHost("xx.x.x.xx"); 

DefaultHttpClient httpclient = new DefaultHttpClient(); 

httpclient.getParams().setParameter("3128",proxy); 


HttpPost httpost = new HttpPost(url); 
List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 

nvps.add(new BasicNameValuePair("aranan", song)); 

httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 

HttpResponse response = httpclient.execute(httpost); 
HttpEntity entity = response.getEntity(); 
System.out.println("Request Handled?: " + response.getStatusLine()); 

in = entity.getContent(); 

httpclient.getConnectionManager().shutdown(); 

ответ

56

Да я выяснял свою собственную проблему, эту линию

должен быть

httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy); 

Полный Пример Apache HTTPClient 4.1, настройка прокси-сервера можно найти ниже

HttpHost proxy = new HttpHost("ip address",port number); 
DefaultHttpClient httpclient = new DefaultHttpClient(); 
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy); 

HttpPost httpost = new HttpPost(url); 
List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 
nvps.add(new BasicNameValuePair("param name", param)); 
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.ISO_8859_1)); 
HttpResponse response = httpclient.execute(httpost); 

HttpEntity entity = response.getEntity(); 
System.out.println("Request Handled?: " + response.getStatusLine()); 
InputStream in = entity.getContent(); 
httpclient.getConnectionManager().shutdown(); 
+7

'httpclient.getParams() setParameter (ConnRoutePNames.DEFAULT_PROXY, прокси);' осуждается – Mazhar

31

Non Устаревший способ сделать это:.

HttpHost proxy = new HttpHost("proxy.com", 80, "http"); 
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy); 
CloseableHttpClient httpclient = HttpClients.custom() 
        .setRoutePlanner(routePlanner) 
        .build(); 
+6

Вы должны использовать '' 'новый HttpHost ("proxy.com", 80, HttpHost.DEFAULT_SCHEME_NAME) '' 'или' '' new HttpHost («proxy.com», 80) '' ' – Wienczny

+0

Большое спасибо, я был немного смущен с apache commons http vs httpcomponents, теперь я могу вас оба из них – Humoyun

+0

Спасибо за неисчерпаемое решение :) – Talador12

Смежные вопросы