24夜 Javaの高機能HTTPクライアント

JavaでHTTPクライアントを利用する場合何を利用しているだろうか。


直にソケット通信はやってる人はまずいないだろう。ヘッダとかなにもあったもんじゃないし。

標準APIで一番利用されるのはHttpURLConnectionだろうか。でもこれも面倒だ。一番やり取りをするEntityの扱いがInputStreamだけで非常に貧弱だ。


そこでJAX-RSの参照実装であるJerseyのクライアント。ほかにもJAX-RSの実装ではクライアントが各自あるが、今回はもっともメジャーなJerseyで。

Client client = Client.create();
WebResource wr = client.resource("http://www.yahoo.co.jp/");
String result = wr.get(String.class);

System.out.println(result); 

これでヤフーのトップページをGETで取得できる。らくちん。

メソッドを変えたりHTTPステータスを調べたり各種ヘッダを見たり、引数のクラス指定でJavaBeansをかいとけばJsonを自動でマッピングとかも可能。LastModifiedとかResponseDateとかちゃんとjava.util.Dateでかえってくるのでこのへんも楽チン。フィルターもあるのでいろいろと手を入れることも可能である。

本当にほしい機能だけがぎっしりとつまってるのでHTTPでアクセスするならこれをぜひ利用しよう。