Apache HttpClient 4.x にProxyの設定をする
The Apache Software Foundation で開発されている HttpClient 4.x を利用する際に、Proxy経由で通信する方法を(良く調べている気がするので)記します。
追加するソースコード
せっかちな人の為に、追加するソースコードだけを先に示します。
HttpHost proxy = new HttpHost("proxy.mycompany.co.jp", 8080, "http");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
サンプルコード
HttpClient 4.x の基本的な使い方は、以前の記事「HttpClient4.0 を使ってみる (1) -とりあえず使ってみる編-」で記した通りです。 以前の記事では、YAHOO!のトップページにアクセスするサンプルでした。 ここでは、そのサンプルコードにプロキシの設定をするコードを追加してみます。
HttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.yahoo.co.jp");
// プロキシの設定 (ここを追記しました)
HttpHost proxy = new HttpHost("proxy.dts.co.jp", 8080, "http");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
// SET PARAMETERS
List params = new ArrayList();
params.add(new BasicNameValuePair("hoge", "moge"));
post.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
// EXECUTE
HttpResponse response = this.httpClient.execute(post);
System.out.println(response.getStatusLine().getStatusCode());
System.out.println(EntityUtils.toString(response.getEntity()));
以上のように、HttpHostオブエジェクトをHttpClientクラスのパラメータに設定してあげるだけです。