java - 出现错误时如何使用 RestTemplate 读取正文?
问题描述
我正在使用 RestTemplate 与一个 REST 服务进行通信,我使用
restTemplate.postForEntity(uri, request, MyResponse.class);
} catch (HttpClientErrorException e)
但是,当出现错误(4xx 或 5xx)时,REST 服务会在正文中以 JSON 格式返回描述,但 HttpClientErrorException.getResponseBodyAsString() 返回 null。RestTemplate (如果我尝试以字符串形式检索响应),也不会返回任何内容。
发生错误时如何检索正文?
解决方案
您可以通过ResponseErrorHandler
. ResponseErrorHandler
需要为RestTemplate
withsetErrorHandler
方法设置。
ResponseErrorHandler 通过两种方法提供响应
boolean hasError(ClientHttpResponse response) 抛出 IOException;
void handleError(ClientHttpResponse response) 抛出 IOException;
推荐阅读
- laravel - 在通知 Laravel 中使用模型中的函数
- vue.js - Vue - 如何在 div 中渲染 $slots.default 以计算其高度?
- android - React Native 是否支持与 Android auto 集成
- javascript - 使用 Javascript、Nodejs 计算 EMA(指数移动平均线)的错误结果
- python - 附加数据框内容时删除列标题
- python - 用python编写一个程序来获取5个用户的居住状态和婚姻状况
- video - 有谁知道使用什么工具来创建这个视频或图表?
- c# - 防止暴露基类(抽象类)
- python - Python - 没有名为“fabric.api”的模块 - Windows 10
- matlab - MATLAB for 循环遍历列以绘制多条线