Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Apache HttpComponents Clientを使ってみた

開発の振り返りみたいなことしてたら、記事として書いてなかったものがあったので追加メモ。

とある連携処理で、とあるWebサービスを呼ぶ部分があり、自分でURL構築したりするのも何だよなぁ、Javaの世界なら何かしらあるだろー、と調べたら案の定たくさんありました(^^;

何を使えばいいのかなぁと探したのですが、最終的には「Apache HttpComponents Client」がイメージにもあっていたので選びました。

最初

を見つけたのですが、トップページに「End of life」ってあって…(^^;わかりやすい

で、今は

に置き換わってます、とのこと。

サンプルは連携で呼び出すWebサービスを利用して確認したのですが、ここでは載せられないので「お天気Webサービス(Livedoor Weather Web Service / LWWS)」でサンプル書いてみました。

pom.xmlの設定

Maven前提ですが…(^^;以下追加します。

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.2.5</version>
</dependency>

で、ビルドすればOKです。

呼出しサンプル

データ取得は思ってたより簡単で、以下のように書くだけでデータが取れました。
開発での実装は残念ながら戻り値がJSONではなく(マジかー)、以下のサンプルも中途半端ですが…(^^;あとは良しなに処理すれば、という感じです。

//Livedoor Weather Web Serviceでデータ取得するサンプル

//URI情報構築
URIBuilder builder = new URIBuilder();
builder.setScheme("http")
       .setHost("weather.livedoor.com/")
       .setPath("forecast/webservice/json/v1")
       .setParameter("city", "130010");

try {
    URI uri = builder.build();
    HttpGet httpGet = new HttpGet(uri);
    HttpClient client = new DefaultHttpClient();
    HttpResponse weatherResponse = client.execute(httpGet);
    //あとは良しなに…
} catch (URISyntaxException | ClientProtocolException ex) {
    //例外処理
} catch (IOException ioEx) {
    //例外処理
}

HttpResponseインスタンスの値をみると、以下のようにヘッダー情報がみえました。

f:id:kikutaro777:20130604215338j:plain

一応、FiddlerでブラウザからURL叩いた場合をみると

f:id:kikutaro777:20130604215352j:plain

同じっぽいのでちゃんと取れてるはず(確認が適当でごめんなさい…)

Webサーバーはnginxなんだー、ほーほー。

FiddlerはJSONも普通に確認できるので

f:id:kikutaro777:20130604215405j:plain

なんかこれをみて上記サンプルの実装を続ける意欲がなくなって止めました(-_-:

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村