インターフェース ClientHttpRequestInterceptor
- すべての既知の実装クラス:
BasicAuthenticationInterceptor
- 関数インターフェース:
- これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。
クライアント側の HTTP リクエストをインターセプトする契約。実装を
RestClient または RestTemplate に登録して、送信リクエストや受信レスポンスを変更できます。- 導入:
- 3.1
- 作成者:
- Arjen Poutsma
メソッドのサマリー
修飾子と型メソッド説明default ClientHttpRequestInterceptorandThen(ClientHttpRequestInterceptor interceptor) 最初にthisインターセプターを呼び出し、次に渡されたインターセプターを呼び出す新しいインターセプターを返します。default ClientHttpRequestExecutionapply(ClientHttpRequestExecution execution) thisインターセプターを呼び出す新しい実行を返し、指定された実行に委譲します。intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) 指定されたリクエストをインターセプトし、レスポンスを返します。
メソッドの詳細
intercept
ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOExceptionSE 指定されたリクエストをインターセプトし、レスポンスを返します。指定されたClientHttpRequestExecutionにより、インターセプターはチェーン内の次のエンティティにリクエストとレスポンスを渡すことができます。このメソッドの典型的な実装は、次のパターンに従います。
- リクエストと本文を調べます。
- 必要に応じて、リクエストをラップして HTTP 属性をフィルタリングします。
- オプションで、リクエストの本文を変更します。
ClientHttpRequestExecution.execute(HttpRequest, byte[])を使用してリクエストを実行する- または、リクエストを実行せずに実行を完全にブロックする
- オプションで、レスポンスをラップして HTTP 属性をフィルタリングします。
メモ: インターセプターがレスポンスを受信した後に例外をスローした場合、
ClientHttpResponse.close()を介してレスポンスを閉じる必要があります。- パラメーター:
request- メソッド、URI、ヘッダーを含むリクエストbody- リクエストの本文execution- リクエストの実行- 戻り値:
- レスポンス
- 例外:
IOExceptionSE- I/O エラーの場合
andThen
最初にthisインターセプターを呼び出し、次に渡されたインターセプターを呼び出す新しいインターセプターを返します。- パラメーター:
interceptor- 次の迎撃機- 戻り値:
- チェーン 2 つの新しいインターセプター
- 導入:
- 7.0
apply
thisインターセプターを呼び出す新しい実行を返し、指定された実行に委譲します。- パラメーター:
execution- 委譲する実行- 戻り値:
- 新しい実行インスタンス
- 導入:
- 7.0