RestTemplate如何获取HTTP状态码为400、500的响应内容呢?

重生 Spring 发布时间:2024-02-03 09:11:15 阅读数:8727 1
下文笔者讲述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的异常
   并返回其响应内容
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202402/7898.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者