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(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 TypeMethodDescriptionprotected CharsetgetCharset(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(ClientHttpResponse response) Handle the error in the given response with the given resolved status code.protected voidhandleError(ClientHttpResponse response, HttpStatusCode statusCode) Handle the error based on the resolved status code.protected booleanhasError(int statusCode) Deprecated.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.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.web.client.ResponseErrorHandlerhandleError
- 
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:
 
- 
hasErrorDeprecated.in favor ofhasError(HttpStatusCode)Template method called fromhasError(ClientHttpResponse).The default implementation checks if the given status code is CLIENT_ERRORorSERVER_ERROR. Can be overridden in subclasses.- Parameters:
- statusCode- the HTTP status code as raw value
- Returns:
- trueif the response indicates an error;- falseotherwise
- Since:
- 4.3.21
- See Also:
 
- 
handleErrorHandle the error in the given response with the given resolved status code.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:
- response- the response with the error
- Throws:
- UnknownHttpStatusCodeException- in case of an unresolvable status code
- IOException- in case of I/O errors
- See Also:
 
- 
handleErrorprotected void handleError(ClientHttpResponse response, HttpStatusCode statusCode) 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:
- 5.0
- 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)
 
 
- 
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
 
- 
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
 
 
- 
hasError(HttpStatusCode)