OSCA

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クラスのパラメータに設定してあげるだけです。

著者 : OSCA

OSCA

個人として何か一つでも世の中の多くの人に使ってもらえるサービスを作ろうと日々奮闘中のエンジニア。 夜景好きのアマチュア写真家でもあります。
Twitter : @oscaphoto
Facebook : OSCA