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的异常 并返回其响应内容
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。