2011-02-10 46 views
23

Tôi đang cố gắng ĐĂNG một số thông số cho máy chủ, nhưng tôi cần thiết lập proxy. bạn có thể giúp tôi để sắp xếp nó "thiết lập proxy" một phần của mã của tôi?Apache HttpClient 4.1 - Cài đặt 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(); 

Trả lời

56

Có, tôi được sắp xếp ra vấn đề của riêng tôi, dòng này

nên

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

Hoàn Ví dụ về một Apache HttpClient 4.1, thiết lập proxy có thể được tìm thấy bên dưới

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, proxy); 'bị phản – Mazhar

31

không phản đối cách làm là:.

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

Bạn nên sử dụng' '' mới HttpHost ("proxy.com", 80, HttpHost.DEFAULT_SCHEME_NAME) '' 'hoặc' '' mới HttpHost ("proxy.com", 80) '' ' – Wienczny

+0

Cảm ơn bạn rất nhiều, tôi đã hơi bối rối với apache commons http vs httpcomponents, bây giờ tôi có thể bạn cả hai người trong số họ – Humoyun

+0

Cảm ơn bạn vì giải pháp không được chấp nhận :) – Talador12

Các vấn đề liên quan