JavaのHTTPクライアントはHttpClientやJersey Client等、いつも何を使うか迷います。
google-http-java-clientなんかも良さそうだし。この辺は同じような迷いの中、色々と紹介されています。
d.hatena.ne.jp
vividcode.hatenablog.com
で、英語でググっていたらUnirestというのがありました。
Unirest for Java - Simplified, lightweight HTTP Request Library
色々な言語に対応しているようで、Java以外にRuby,PHP,.NET,Python,Objective-C,Nodeとあるようです。
Windows 8っていう箱が.NETと何が違うのかちょっと謎ですが…(^^;
で、このライブラリはmashape.comというAPIのマーケットプレース的なサービスを提供している企業が開発してる模様。
ライブラリ自体のライセンスはMIT licenseです。
www.mashape.com
jp.techcrunch.com
とりあえず、ライブドアさんのお天気REST APIで次のURLをコールするものを
http://weather.livedoor.com/forecast/webservice/json/v1?city=130010
Unirestで書いてみると
HttpResponse<JsonNode> ret
= Unirest.get("http://weather.livedoor.com/forecast/webservice/json/v1")
.queryString("city", "130010")
.asJson();
こんな感じ。
サイトにあるFeaturesを読むと、色々なことがシンプルにできそうです。
本当はHttpClientやJersey Client等の他のライブラリとの機能比較表みたいなのがわかると良いのですが…(^^;
今は仕事じゃなく遊びのプログラムなので、お試しでこのUnirest for Javaを使ってみようー。
若干残念なのはググラビリティが少し低く、「Unirest」と他のキーワードで調べると「Unit test」(REST APIのユニットテスト)の間違いではありませんか?と推論されてしまったり(^^;