首页 > 解决方案 > 出现错误时如何使用 RestTemplate 读取正文?

问题描述

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

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

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

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

标签: javaspringresttemplatespring-rest

解决方案


您可以通过ResponseErrorHandler. ResponseErrorHandler需要为RestTemplatewithsetErrorHandler方法设置。

ResponseErrorHandler 通过两种方法提供响应

boolean hasError(ClientHttpResponse response) 抛出 IOException;

void handleError(ClientHttpResponse response) 抛出 IOException;


推荐阅读