2011-02-10 11 views
23

Próbuję POST niektóre parametry do serwera, ale muszę skonfigurować proxy. czy możesz mi pomóc w posortowaniu go "ustawiając proxy" jako część mojego kodu?Apache HttpClient 4.1 - Ustawienia proxy

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(); 

Odpowiedz

56

Tak uporządkowane własne problemy, ta linia

powinny być

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

Kompletna Przykład Apache httpclient 4,1, ustawianie proxy można znaleźć poniżej

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, pełnomocnik);' jest przestarzała – Mazhar

31

dla przestarzałe ze sposobów jest:.

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

Należy używać '' 'nowy HttpHost ("proxy.com" 80, HttpHost.DEFAULT_SCHEME_NAME) '' 'lub' '' nowy HttpHost ("proxy.com", 80) '' ' – Wienczny

+0

Dziękuję bardzo, byłem trochę zdezorientowany z Apache commons http vs httpcomponents, teraz mogę cię obaj z nich – Humoyun

+0

Dziękuję za nieużywane rozwiązanie :) – Talador12

Powiązane problemy