開発の振り返りみたいなことしてたら、記事として書いてなかったものがあったので追加メモ。
とある連携処理で、とある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ではなく(マジかー)、以下のサンプルも中途半端ですが…(^^;あとは良しなに処理すれば、という感じです。
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インスタンスの値をみると、以下のようにヘッダー情報がみえました。
一応、FiddlerでブラウザからURL叩いた場合をみると
同じっぽいのでちゃんと取れてるはず(確認が適当でごめんなさい…)
Webサーバーはnginxなんだー、ほーほー。
FiddlerはJSONも普通に確認できるので
なんかこれをみて上記サンプルの実装を続ける意欲がなくなって止めました(-_-: