JAX-RSのリファレンス実装であるJerseyには、RESTサービスを提供するサーバ側の実装(jersey-server)と、RESTサービスを利用するクライアント側の実装(jersey-client)とがあります。
RESTサービスではHTTPを介してサーバとクライアントとがやりとりしますから、当然jersey-clientはHTTPクライアントの機能を備えています。今回はJerseyの使い方の番外編として、RESTサービスを抜きにHTTPクライアントとしても、jersey-clientは使い勝手が良いという話をします。
ちなみに、JAX-RS 1.1にはクライアント側のAPIは定義されておらず、今年(2012年)のQ2にリリース予定のJAX-RS 2.0から定義されることになっています。(本稿執筆時点ではEarly Draft Reviewの段階)
まず使ってみる
何はともあれ、使ってみましょう。
Mavenを使用する場合は、以下のdependencyを追加します。
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.11</version> </dependency>
あるいは、http://jersey.java.net/からjarをダウンロードしてクラスパスに含めます。
まずは簡単なところで、あるサイトのHTMLを取得したいとしましょう。その場合以下のようなコードになります。
Client c = Client.create(); WebResource r = c.resource("http://www.example.com/"); String html = r.get(String.class);
- Clientインスタンスを作る
- URLからWebResourceインスタンスを作る
- リクエストの結果をオブジェクトとして取得する
基本的にはこの3ステップで進んでいきます。 続きを読む HTTPクライアントとして使うjersey-client