Apache-httpclient-interceptors
Apache HttpClient-インターセプター
インターセプターは、要求または応答を妨害または変更するのに役立つものです。 プロトコルインターセプターは一般に、特定のヘッダーまたは関連するヘッダーのグループに基づいて動作します。 HttpClientライブラリは、インターセプターのサポートを提供します。
リクエストインターセプター
クライアント側では、このメソッドはリクエストを検証/処理してからサーバーに送信し、サーバー側では、リクエストの本文を評価する前にこのメソッドを実行します。
リクエストインターセプターの作成
以下に示す手順に従って、要求インターセプターを作成できます。
- ステップ1-HttpRequestInterceptor *のオブジェクトを作成します
抽象メソッドプロセスを実装して、HttpRequestInterceptorインターフェイスのオブジェクトを作成します。
ステップ2-CloseableHttpClientオブジェクトのインスタンス化
以下に示すように、上記で作成したインターセプターを追加して、カスタム CloseableHttpClient オブジェクトを構築します-
このオブジェクトを使用して、通常どおりリクエストの実行を実行できます。
例
次の例は、リクエストインターセプターの使用方法を示しています。 この例では、HTTP GETリクエストオブジェクトを作成し、3つのヘッダーを追加しました:sample-header、demoheader、およびtest-header。
インターセプターの* processor()メソッドでは、送信されたリクエストのヘッダーを検証しています。それらのヘッダーのいずれかが *sample-header である場合、そのヘッダーを削除し、その特定のリクエストのヘッダーのリストを表示しようとしています。
出力
上記のプログラムを実行すると、次の出力が生成されます-
応答インターセプター
サーバー側では、このメソッドは応答を検証/処理してからクライアントに送信し、クライアント側ではこのメソッドを実行してから応答の本文を評価します。
応答インターセプターの作成
次の手順に従って、応答インターセプターを作成できます-
ステップ1-HttpResponseInterceptorのオブジェクトを作成します
抽象メソッド process を実装して、 HttpResponseInterceptor インターフェイスのオブジェクトを作成します。
ステップ2:CloseableHttpClientオブジェクトのインスタンス化
以下に示すように、上記で作成したインターセプターを追加して、カスタム CloseableHttpClient オブジェクトを構築します-
このオブジェクトを使用して、通常どおりリクエストの実行を実行できます。
例
次の例は、応答インターセプターの使用方法を示しています。 この例では、プロセッサの応答に3つのヘッダー、sample-header、demo-header、およびtest-headerを追加しました。
リクエストを実行してレスポンスを取得した後、* getAllHeaders()*メソッドを使用して、レスポンスのすべてのヘッダーの名前を出力しました。
また、出力では、リスト内の3つのヘッダーの名前を確認できます。
出力
実行すると、上記のプログラムは次の結果を生成します-