java - 发生错误时如何使用 RestTemplate 读取正文?

标签 java spring resttemplate spring-rest

我正在使用 RestTemplate 与一个 REST 服务进行通信,我使用

     restTemplate.postForEntity(uri, request, MyResponse.class);
 } catch (HttpClientErrorException e)

但是,当出现错误(4xx 或 5xx)时,REST 服务会在正文中返回 JSON 格式的描述,但 HttpClientErrorException.getResponseBodyAsString() 返回空值。 RestTemplate(如果我尝试以字符串形式检索响应),也不会返回任何内容。

发生错误时如何检索正文?

最佳答案

您可以通过 ResponseErrorHandler 访问错误响应。需要使用 setErrorHandlerRestTemplate 设置 ResponseErrorHandler方法。

ResponseErrorHandler 通过两种方法提供响应

boolean hasError(ClientHttpResponse response) throws IOException;

void handleError(ClientHttpResponse response) throws IOException;

关于java - 发生错误时如何使用 RestTemplate 读取正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53783465/

相关文章:

java - 拥有一个以自身为场的对象是否合理?

Java 执行 Linux 命令

来自 jython 的 Java 类

java - 如何为 hibernate 中的自动增量提供起始值

java - spring mvc 模拟存储库

java - RestTemplate:从 ResponseErrorHandler 抛出的自定义异常未传播到调用方

java - resttemplate.exchange 上的 SocketException 连接重置错误

java - 在 Spring 项目中将 IP 列入白名单

java - 强制 Spring RestTemplate 忽略响应的内容类型 header

java - Spring mongodb - 对数组中的字段求和并检查大于