nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
アプリケーション開発において、WebサーバとのHTTP通信が必要とされる場合があります。
HTTP通信する機能を抽象化したのが、HttpClientFactoryです。
また、通信相手となるWebサーバの代替となるのがプロキシサービスです。
関連するパッケージは、以下です。
アプリケーション向けインタフェースHttpClientFactoryは、URLを隠ぺいしてアクション名でHTTPリクエストを抽象化したHttpRequestを提供します。
また、サーバとのセッションを維持し、Cookieなどのクライアントで保持する情報を持つHttpClientを生成します。
HttpClientを使って、HttpRequestをサーバに送信すると応答としてHttpResponseが取得できます。
HttpClientFactoryを使った簡単なアプリケーションのサンプルを示します。
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.http.HttpClientFactory;
- import jp.ossc.nimbus.service.http.HttpClient;
- import jp.ossc.nimbus.service.http.HttpReuqest;
- import jp.ossc.nimbus.service.http.HttpResponse;
- // HttpClientFactoryを取得
- HttpClientFactory factory = (HttpClientFactory)ServiceManagerFactory.getServiceObject("HttpClientFactory");
- // クライアントを生成する
- HttpClient client = factory.createHttpClient();
- // リクエストを生成する
- HttpRequest request = factory.createRequest("Login");
- // リクエストパラメータを設定する
- request.setParameter("id", "hoge");
- request.setParameter("password", "1234_AbcD");
- // リクエストして、応答を受け取る
- HttpResponse response = client.executeRequest(request);
- // 応答のステータスコードを判定する
- if(reponse.getStatusCode() == 200){
- // 応答オブジェクトを取得する
- System.out.println(response.getObject());
- }
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.http.httpclient.HttpClientFactoryService | Jakarta Commons HttpClientを使った実装 |
HttpClientFactoryの呼び出し相手となるWebサーバの代替となるテスト用サービスです。
ProxyServerServiceが、特定のポートで待ち受けます。
そのポートにアクセスしたソケットをQueueHandlerContainerを使って、非同期処理して、Processインタフェースを実装したサービスに処理を委譲します。
ProxyServerService向けインタフェース Processの実装サービスは、ProxyServerServiceにアクセスされたソケットの入力ストリームを読み取り、処理を行い出力ストリームに結果を書き出します。
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.http.proxy.TestHttpProcessService | HTTPリクエストを読み込み、HTTPレスポンスを返す |
サンプルは、以下。