RestTemplate如何获取HTTP状态码为400、500的响应内容呢?
下文笔者讲述RestTemplate获取400\500状态码的响应内容,如下所示
我们都知道RestTemplate默认不处理400,500响应码的请求,而是直接抛出异常
那么如何获取这些响应内容呢?
下文笔者将一一道来,如下所示
接收状态码 400,500的响应内容的实现思路
我们只需为RestTemplate设置一个自定义ResponeErrorHandler类
例
/**
* RestTemplate配置类
*/
@Slf4j
@Configuration
public class RestTemplateConfig{
/**
* 常用远程调用RestTemplate
* @return restTemplate
*/
@Bean("restTemplate")
public RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
restTemplate.setErrorHandler(new AcceptResponseErrorHandler());
return restTemplate ;
}
/**
* 使RestTemplate能够对响应的错误消息不进行处理
* 如:当响应码为400、500等错误时,能够不进行处理,最终用户可以获取到body数据
*/
private static class AcceptResponseErrorHandler implements ResponseErrorHandler {
@Override
public boolean hasError(ClientHttpResponse response) throws IOException {
return false;
}
@Override
public void handleError(ClientHttpResponse response) throws IOException {
}
}
//使用以上配置后
//RestTemplate则可处理httpCode等于400和500的异常
并返回其响应内容
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


