クラス ExtractingResponseErrorHandler
- 実装されているすべてのインターフェース:
ResponseErrorHandler
HttpMessageConverters を使用して HTTP エラーレスポンスを RestClientExceptions に変換する ResponseErrorHandler の実装。 このエラーハンドラーを使用するには、ステータスマッピングまたはシリーズマッピング、あるいはその両方を指定する必要があります。これらのマッピングのいずれかが特定の ClientHttpResponse のステータスコードと一致する場合、DefaultResponseErrorHandler.hasError(ClientHttpResponse) は true を返し、DefaultResponseErrorHandler.handleError(ClientHttpResponse) は構成されたメッセージコンバーターを使用してレスポンスを RestClientException のマップされたサブクラスに変換しようとします。ステータスマッピングはシリーズマッピングよりも優先されることに注意してください。
一致しない場合、このエラーハンドラーはデフォルトで DefaultResponseErrorHandler の動作になります。HttpStatus.Series#CLIENT_ERROR および / または HttpStatus.Series#SERVER_ERROR から null へのシリーズマッピングを指定することにより、このデフォルトの動作を上書きできることに注意してください。
- 導入:
- 5.0
- 作成者:
- Simon Galperin, Arjen Poutsma
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明新しい空のExtractingResponseErrorHandlerを作成します。ExtractingResponseErrorHandler(ListSE<HttpMessageConverter<?>> messageConverters) 指定されたHttpMessageConverterインスタンスで新しいExtractingResponseErrorHandlerを作成します。方法の概要
修飾子と型メソッド説明voidhandleError(URISE url, HttpMethod method, ClientHttpResponse response) 指定された解決済みのステータスコードと、リクエスト URL および HTTP メソッドへのアクセスを提供する追加情報を使用して、指定されたレスポンス内のエラーを処理します。protected voidhandleError(ClientHttpResponse response, HttpStatusCode statusCode, URISE url, HttpMethod method) 解決されたステータスコードに基づいてエラーを処理します。protected booleanhasError(HttpStatusCode statusCode) DefaultResponseErrorHandler.hasError(ClientHttpResponse)から呼び出されるテンプレートメソッド。voidsetMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters) この抽出プログラムで使用するメッセージコンバーターを設定します。voidsetSeriesMapping(MapSE<HttpStatus.Series, ClassSE<? extends RestClientException>> seriesMapping) HTTP ステータスシリーズからRestClientExceptionサブクラスへのマッピングを設定します。voidsetStatusMapping(MapSE<HttpStatusCode, ClassSE<? extends RestClientException>> statusMapping) HTTP ステータスコードからRestClientExceptionサブクラスへのマッピングを設定します。クラス org.springframework.web.client.DefaultResponseErrorHandler から継承されたメソッド
getCharset, getResponseBody, handleError, hasError, hasError, initBodyConvertFunction
コンストラクターの詳細
ExtractingResponseErrorHandler
public ExtractingResponseErrorHandler()新しい空のExtractingResponseErrorHandlerを作成します。このコンストラクターを使用する場合は、
setMessageConverters(List)を呼び出す必要があることに注意してください。ExtractingResponseErrorHandler
指定されたHttpMessageConverterインスタンスで新しいExtractingResponseErrorHandlerを作成します。- パラメーター:
messageConverters- 使用するメッセージコンバーター
メソッドの詳細
setMessageConverters
この抽出プログラムで使用するメッセージコンバーターを設定します。setStatusMapping
public void setStatusMapping(MapSE<HttpStatusCode, ClassSE<? extends RestClientException>> statusMapping) HTTP ステータスコードからRestClientExceptionサブクラスへのマッピングを設定します。このマッピングが特定のClientHttpResponseのステータスコードと一致する場合、DefaultResponseErrorHandler.hasError(ClientHttpResponse)はtrueを返し、DefaultResponseErrorHandler.handleError(ClientHttpResponse)は構成されたメッセージコンバーターを使用してレスポンスをRestClientExceptionのマップされたサブクラスに変換しようとします。setSeriesMapping
public void setSeriesMapping(MapSE<HttpStatus.Series, ClassSE<? extends RestClientException>> seriesMapping) HTTP ステータスシリーズからRestClientExceptionサブクラスへのマッピングを設定します。このマッピングが特定のClientHttpResponseのステータスコードと一致する場合、DefaultResponseErrorHandler.hasError(ClientHttpResponse)はtrueを返し、DefaultResponseErrorHandler.handleError(ClientHttpResponse)は構成されたメッセージコンバーターを使用してレスポンスをRestClientExceptionのマップされたサブクラスに変換しようとします。hasError
クラスからコピーされた説明:DefaultResponseErrorHandlerDefaultResponseErrorHandler.hasError(ClientHttpResponse)から呼び出されるテンプレートメソッド。デフォルトの実装は
HttpStatusCode.isError()をチェックします。サブクラスでオーバーライドできます。- オーバーライド:
- クラス
DefaultResponseErrorHandlerのhasError - パラメーター:
statusCode- HTTP ステータスコード- 戻り値:
- レスポンスがエラーを示す場合、
true。それ以外の場合はfalse - 関連事項:
handleError
public void handleError(URISE url, HttpMethod method, ClientHttpResponse response) throws IOExceptionSE クラスからコピーされた説明:DefaultResponseErrorHandler指定された解決済みのステータスコードと、リクエスト URL および HTTP メソッドへのアクセスを提供する追加情報を使用して、指定されたレスポンス内のエラーを処理します。デフォルトの実装は以下をスローします:
- ステータスコードが 4xx シリーズ、または
HttpClientErrorException.BadRequestなどのサブクラスの 1 つである場合は、HttpClientErrorException。 - ステータスコードが 5xx シリーズ、または
HttpServerErrorException.InternalServerErrorなどのサブクラスの 1 つである場合は、HttpServerErrorException。 HttpStatus列挙範囲にないエラーステータスコードのUnknownHttpStatusCodeException。
- 次で指定:
- インターフェース
ResponseErrorHandlerのhandleError - オーバーライド:
- クラス
DefaultResponseErrorHandlerのhandleError - パラメーター:
url- リクエスト URLmethod- HTTP メソッドresponse- エラーのあるレスポンス- 例外:
IOExceptionSE- I/O エラーの場合- 関連事項:
- ステータスコードが 4xx シリーズ、または
handleError
protected void handleError(ClientHttpResponse response, HttpStatusCode statusCode, @Nullable URISE url, @Nullable HttpMethod method) throws IOExceptionSE クラスからコピーされた説明:DefaultResponseErrorHandler解決されたステータスコードに基づいてエラーを処理します。デフォルトの実装は、4xx の範囲のエラーの場合は
HttpClientErrorException.create(org.springframework.http.HttpStatusCode, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)に委譲し、5xx の範囲のエラーの場合はHttpServerErrorException.create(org.springframework.http.HttpStatusCode, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)に委譲するか、そうでなければUnknownHttpStatusCodeExceptionを発生させます。- オーバーライド:
- クラス
DefaultResponseErrorHandlerのhandleError - 例外:
IOExceptionSE- 関連事項:
HttpClientErrorException.create(org.springframework.http.HttpStatusCode, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)HttpServerErrorException.create(org.springframework.http.HttpStatusCode, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)