Apache-httpclient-form-based-login
Apache HttpClient-フォームベースのログイン
HttpClientライブラリを使用すると、リクエストを送信したり、パラメータを渡してフォームにログインしたりできます。
以下の手順に従って、フォームにログインします。
ステップ1-HttpClientオブジェクトを作成する
ステップ2-RequestBuilderオブジェクトを作成する
クラス RequestBuilder は、パラメーターを追加して要求を作成するために使用されます。 リクエストタイプがPUTまたはPOSTの場合、リクエストにパラメーターをURLエンコードエンティティとして追加します
post()メソッドを使用して、(POSTタイプの)RequestBuilderオブジェクトを作成します。
ステップ3-UriとパラメーターをRequestBuilderに設定します。
RequestBuilderクラスの* setUri()および addParameter()*メソッドを使用して、URIおよびパラメーターをRequestBuilderオブジェクトに設定します。
ステップ4-HttpUriRequestオブジェクトを構築する
必須パラメーターを設定したら、* build()メソッドを使用して *HttpUriRequest オブジェクトをビルドします。
ステップ5-リクエストを実行する
CloseableHttpClientオブジェクトのexecuteメソッドは、HttpUriRequest(インターフェイス)オブジェクト(つまり、 HttpGet、HttpPost、HttpPut、HttpHeadなど)と応答オブジェクトを返します。
前の手順で作成したHttpUriRequestを* execute()*メソッドに渡して実行します。
例
次の例は、ログイン資格情報を送信してフォームにログオンする方法を示しています。 ここでは、2つのパラメーター-*ユーザー名とパスワード*をフォームに送信し、メッセージエンティティとリクエストのステータスを出力しようとしました。
出力
実行すると、上記のプログラムは次の出力を生成します-
Cookieを使用したフォームログイン
フォームがデフォルトの CloseableHttpClient オブジェクトを作成する代わりに、Cookieを保存する場合。
- BasicCookieStoreクラスをインスタンス化して、CookieStoreオブジェクトを作成します。
- HttpClients クラスの* custom()*メソッドを使用してHttpClientBuilder *を作成します。
- setDefaultCookieStore()メソッドを使用して、Cookieストアをクライアントビルダーに設定します。
- build()メソッドを使用して *CloseableHttpClient オブジェクトをビルドします。
リクエストの実行を渡すことにより、上記で指定した HttpUriRequest オブジェクトを作成します。
ページにCookieが保存されている場合、渡したパラメーターはCookieストアに追加されます。
パラメータを見ることができる CookieStore オブジェクトの内容を印刷できます(以前のページとともに、ケースに保存されたページ)。
Cookieを印刷するには、* getCookies()メソッドを使用して *CookieStore オブジェクトからすべてのCookieを取得します。 このメソッドは List オブジェクトを返します。 イテレータを使用して、以下に示すようにリストオブジェクトの内容を印刷します-