【发布时间】:2016-06-03 17:06:40
【问题描述】:
我正在更新使用 Spring 3.1 Framework 的 RestTemplate 类的 exchange 方法的旧代码。我遇到了似乎是一个重大的细节遗漏。当我尝试与之通信的其余客户端返回 400 状态代码时,会抛出 HttpClientErrorException 但没有响应正文来提供有关服务器拒绝请求的原因的详细信息。似乎没有办法检索可以提供非常有用信息的响应正文。
我不需要弄清楚我的调用代码有什么问题,因为我已经这样做了。我只是想知道如果调用发生错误,我是否可以通过某种方式访问和记录 HTTP 响应的正文。
【问题讨论】:
-
从代码看来,所有信息都包含在
HttpClientErrorException中:DefaultResponseErrorHandler@90 -
感谢您的评论。抛出异常时没有响应正文。这就是我与堆栈跟踪一起返回的所有内容。
org.springframework.web.client.HttpClientErrorException: 400 Bad Request -
啊...没关系,我看到了。异常上有一个实际的方法来获取响应体。
-
您收到回复了吗?我的 HttpClientErrorException 没有正文,但经过测试的请求(使用 RestTemplate)返回带有 JSON 的状态 401,我无法获得
-
下面的答案显示了您可以使用的两种方法来获取 HTTP 响应正文。这对您不起作用吗?