2011-02-10 18 views
23

サーバーにいくつかのパラメータをPOSTしようとしていますが、プロキシを設定する必要があります。あなたは私のコードの "プロキシを設定する"の並べ替えを助けることができますか?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

は、はい、私は

の下に見つけることができますプロキシを設定することは、ApacheのHttpClient 4.1の

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

完全な例である必要があり、私自身の問題で、この行をソート

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、プロキシ);'あなたが '' '新しいHttpHost( "proxy.com" を使用する必要があり – Mazhar

31

以外が行う方法を廃止予定は以下のとおりです。

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

を推奨されていません。 80、HttpHost.DEFAULT_SCHEME_NAME) '' 'または' ''新しいHttpHost( "proxy.com"、80) '' ' – Wienczny

+0

本当にありがとう、私はちょっとApacheのコモンズhttpとhttpcomponentsを混同していました。両方とも – Humoyun

+0

非難された解決策をありがとう – Talador12

関連する問題