Class DefaultResponseErrorHandler
- All Implemented Interfaces:
- ResponseErrorHandler
- Direct Known Subclasses:
- ExtractingResponseErrorHandler
ResponseErrorHandler interface.
 This error handler checks for the status code on the
 ClientHttpResponse. Any code in the 4xx or 5xx series is considered
 to be an error. This behavior can be changed by overriding
 hasError(HttpStatusCode). Unknown status codes will be ignored by
 hasError(ClientHttpResponse).
 
See handleError(URI, HttpMethod, ClientHttpResponse)  for more
 details on specific exception types.
- Since:
- 3.0
- Author:
- Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller
- See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptiongetCharset(ClientHttpResponse response) Determine the charset of the response (for inclusion in a status exception).protected byte[]getResponseBody(ClientHttpResponse response) Read the body of the given response (for inclusion in a status exception).voidhandleError(URI url, HttpMethod method, ClientHttpResponse response) Handle the error in the given response with the given resolved status code and extra information providing access to the request URL and HTTP method.protected voidhandleError(ClientHttpResponse response, HttpStatusCode statusCode, @Nullable URI url, @Nullable HttpMethod method) Handle the error based on the resolved status code.booleanhasError(ClientHttpResponse response) Delegates tohasError(HttpStatusCode)with the response status code.protected booleanhasError(HttpStatusCode statusCode) Template method called fromhasError(ClientHttpResponse).protected Function<ResolvableType,?> initBodyConvertFunction(ClientHttpResponse response, byte[] body) Return a function for decoding the error content.
- 
Constructor Details- 
DefaultResponseErrorHandlerpublic DefaultResponseErrorHandler()
 
- 
- 
Method Details- 
hasErrorDelegates tohasError(HttpStatusCode)with the response status code.- Specified by:
- hasErrorin interface- ResponseErrorHandler
- Parameters:
- response- the response to inspect
- Returns:
- trueif the response indicates an error;- falseotherwise
- Throws:
- IOException- in case of I/O errors
- See Also:
 
- 
hasErrorTemplate method called fromhasError(ClientHttpResponse).The default implementation checks HttpStatusCode.isError(). Can be overridden in subclasses.- Parameters:
- statusCode- the HTTP status code
- Returns:
- trueif the response indicates an error;- falseotherwise
- See Also:
 
- 
handleErrorHandle the error in the given response with the given resolved status code and extra information providing access to the request URL and HTTP method.The default implementation throws: - HttpClientErrorExceptionif the status code is in the 4xx series, or one of its sub-classes such as- HttpClientErrorException.BadRequestand others.
- HttpServerErrorExceptionif the status code is in the 5xx series, or one of its sub-classes such as- HttpServerErrorException.InternalServerErrorand others.
- UnknownHttpStatusCodeExceptionfor error status codes not in the- HttpStatusenum range.
 - Specified by:
- handleErrorin interface- ResponseErrorHandler
- Parameters:
- url- the request URL
- method- the HTTP method
- response- the response with the error
- Throws:
- UnknownHttpStatusCodeException- in case of an unresolvable status code
- IOException- in case of I/O errors
- Since:
- 6.2
- See Also:
 
- 
handleErrorprotected void handleError(ClientHttpResponse response, HttpStatusCode statusCode, @Nullable URI url, @Nullable HttpMethod method) throws IOException Handle the error based on the resolved status code.The default implementation delegates to HttpClientErrorException.create(org.springframework.http.HttpStatusCode, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)for errors in the 4xx range, toHttpServerErrorException.create(org.springframework.http.HttpStatusCode, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)for errors in the 5xx range, or otherwise raisesUnknownHttpStatusCodeException.- Throws:
- IOException
- Since:
- 6.2
- See Also:
- 
- 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)
 
 
- 
getResponseBodyRead the body of the given response (for inclusion in a status exception).- Parameters:
- response- the response to inspect
- Returns:
- the response body as a byte array, or an empty byte array if the body could not be read
- Since:
- 4.3.8
 
- 
getCharsetDetermine the charset of the response (for inclusion in a status exception).- Parameters:
- response- the response to inspect
- Returns:
- the associated charset, or nullif none
- Since:
- 4.3.8
 
- 
initBodyConvertFunctionprotected Function<ResolvableType,?> initBodyConvertFunction(ClientHttpResponse response, byte[] body) Return a function for decoding the error content. This can be passed toRestClientResponseException.setBodyConvertFunction(Function).- Since:
- 6.0
 
 
-