public class DefaultResponseErrorHandler extends Object implements ResponseErrorHandler
ResponseErrorHandler interface.
This error handler checks for the status code on the ClientHttpResponse:
Any code with series HttpStatus.Series.CLIENT_ERROR
or HttpStatus.Series.SERVER_ERROR is considered to be
an error; this behavior can be changed by overriding the hasError(HttpStatus)
method. Unknown status codes will be ignored by hasError(ClientHttpResponse).
RestTemplate.setErrorHandler(org.springframework.web.client.ResponseErrorHandler)| Constructor and Description |
|---|
DefaultResponseErrorHandler() |
| Modifier and Type | Method and Description |
|---|---|
protected Charset |
getCharset(ClientHttpResponse response)
Determine the charset of the response (for inclusion in a status exception).
|
protected HttpStatus |
getHttpStatusCode(ClientHttpResponse response)
Deprecated.
as of 5.0, in favor of
handleError(ClientHttpResponse, HttpStatus) |
protected byte[] |
getResponseBody(ClientHttpResponse response)
Read the body of the given response (for inclusion in a status exception).
|
void |
handleError(ClientHttpResponse response)
Delegates to
handleError(ClientHttpResponse, HttpStatus) with the
response status code. |
protected void |
handleError(ClientHttpResponse response,
HttpStatus statusCode)
Handle the error in the given response with the given resolved status code.
|
boolean |
hasError(ClientHttpResponse response)
Delegates to
hasError(HttpStatus) (for a standard status enum value) or
hasError(int) (for an unknown status code) with the response status code. |
protected boolean |
hasError(HttpStatus statusCode)
Template method called from
hasError(ClientHttpResponse). |
protected boolean |
hasError(int unknownStatusCode)
Template method called from
hasError(ClientHttpResponse). |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waithandleErrorpublic boolean hasError(ClientHttpResponse response) throws IOException
hasError(HttpStatus) (for a standard status enum value) or
hasError(int) (for an unknown status code) with the response status code.hasError in interface ResponseErrorHandlerresponse - the response to inspecttrue if the response indicates an error; false otherwiseIOException - in case of I/O errorsClientHttpResponse.getRawStatusCode(),
hasError(HttpStatus),
hasError(int)protected boolean hasError(HttpStatus statusCode)
hasError(ClientHttpResponse).
The default implementation checks HttpStatus.isError().
Can be overridden in subclasses.
statusCode - the HTTP status code as enum valuetrue if the response indicates an error; false otherwiseHttpStatus.isError()protected boolean hasError(int unknownStatusCode)
hasError(ClientHttpResponse).
The default implementation checks if the given status code is
HttpStatus.Series#CLIENT_ERROR CLIENT_ERROR or
HttpStatus.Series#SERVER_ERROR SERVER_ERROR.
Can be overridden in subclasses.
unknownStatusCode - the HTTP status code as raw valuetrue if the response indicates an error; false otherwiseHttpStatus.Series#CLIENT_ERROR,
HttpStatus.Series#SERVER_ERRORpublic void handleError(ClientHttpResponse response) throws IOException
handleError(ClientHttpResponse, HttpStatus) with the
response status code.handleError in interface ResponseErrorHandlerresponse - the response with the errorUnknownHttpStatusCodeException - in case of an unresolvable status codeIOException - in case of I/O errorshandleError(ClientHttpResponse, HttpStatus)protected void handleError(ClientHttpResponse response, HttpStatus statusCode) throws IOException
The default implementation throws an HttpClientErrorException
if the status code is HttpStatus.Series#CLIENT_ERROR, an
HttpServerErrorException if it is HttpStatus.Series#SERVER_ERROR,
and an UnknownHttpStatusCodeException in other cases.
IOExceptionHttpClientErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset),
HttpServerErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)@Deprecated protected HttpStatus getHttpStatusCode(ClientHttpResponse response) throws IOException
handleError(ClientHttpResponse, HttpStatus)response - the response to inspectIOException - in case of I/O errorsUnknownHttpStatusCodeException - in case of an unknown status code
that cannot be represented with the HttpStatus enumprotected byte[] getResponseBody(ClientHttpResponse response)
response - the response to inspect@Nullable protected Charset getCharset(ClientHttpResponse response)
response - the response to inspectnull if none