HttpClient入門(HttpClient3.0-rc3)
HttpClientを使用したアプリケーションを作成するための準備と,アプリケーションプログラムの概要を調査してみた.
HttpClientは,Jakarta Commonsの一部で,Httpクライアントアプリケーションの構築をサポートするクラスライブラリである.
Httpは現在もっとも重要なプロトコルであるにもかかわらず,java.net以下のクラスは基本的な機能しか提供していない.
HttpClientはより高機能を提供する.
具体的には本家にいろいろ書いてある.
高機能を持つHttpClientを使用すると,Webブラウザや(Httpバインディング)Webサービスクライアントの作成が容易になる.
本頁では,サンプルを作成を通して,HttpClientを使用するアプリケーションを構築するための準備とアプリケーションプログラムのコードの概要について記述する.
まず,HttpClientを使用するためには,HttpClientが依存するクラスライブラリを容易する必要がある.
HttpClientは以下のクラスライブラリに依存する.
- commons-codec
- commons-logging
- junit
$ ant preparelibこれで上記クラスクラスライブラリがディレクトリdownloadにダウンロードされ,展開されてjarファイルがディレクトリlibに配置される.
$> ls download codec.zip commons-codec-1.3 commons-httpclient-3.0-rc3 commons-logging-1.0.4 httpclient.zip logging.zip $> ls lib commons-codec-1.3.jar commons-httpclient-3.0-rc3.jar commons-logging-api.jar commons-logging.jarHttpClientを使用するための準備は以上である(※).
※ 今回は執筆時点での最新晩3.0-rc3を使用している.
HttpClient3.0ではJDK 3.0以降が必要であるが,今回の記述では割愛している.
今回のサンプルを以下にしめす.
このサンプルは,指定したURLにHTTPのGETメソッドを発行し,回答をダンプするものである.
実行結果を以下にしめす.
> java -jar httpclientsample.jar http://www.example.com statusCode = 200 headers[0] = Date: Sun, 07 Aug 2005 15:08:17 GMT headers[1] = Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) headers[2] = Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT headers[3] = ETag: "3f80f-1b6-3e1cb03b" headers[4] = Accept-Ranges: bytes headers[5] = Content-Length: 438 headers[6] = Connection: close headers[7] = Content-Type: text/html <HTML> <HEAD> <TITLE>Example Web Page</TITLE> </HEAD> <body> <p>You have reached this web page by typing "example.com", "example.net", or "example.org" into your web browser.</p> <p>These domain names are reserved for use in documentation and are not available for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC 2606</a>, Section 3.</p> </BODY> </HTML>中心となるクラス,インタフェースとしてHttpClientとHttpMethodがある. HttpClientは,文字通りHTTPクライアントを表すクラスであり,HTTPの状態と接続を保持し,HttpMethodを受け入れ,実行する主体である. HttpMethodはHTTPのメソッド(DELETE, GET, HEAD, POST, PUT, TRACEなど)を表現するインタフェースである. 実装クラスはorg.apache.commons.httpclient.methodsにある. 大まかな流れとして,
- HttpClientオブジェクトの作成.
- HttpMethodの作成と設定.
- HttpClientにHttpMethodの実行を指示.
- HttpMethodから回答取得.
- HttpMethodから接続を開放し,取得した回答を処理する.
- ステータス
- ヘッダ
- 本文
- フッタ

