Spring HttpClientErrorException不提供响应主体的详细信息

时间:2016-06-03 17:06:40

标签: java spring rest

我正在更新使用Spring 3.1 Framework的 RestTemplate 类的 exchange 方法的遗留代码。我偶然发现了一个似乎是细节的重大遗漏。当我尝试与之通信的其余客户端返回400状态代码时,会抛出 HttpClientErrorException ,但没有响应正文提供有关服务器拒绝请求的详细信息。看起来没有办法检索响应体,这将提供非常有用的信息。

我不需要弄清楚我的调用代码有什么问题,因为我已经这样做了。我只是想知道如果在呼叫上发生错误,我是否可以访问并记录HTTP响应的主体。

2 个答案:

答案 0 :(得分:8)

响应主体实际上是HttpClientErrorException的一个属性。它可以通过以下两个访问器访问,它从父类HttpStatusCodeException继承:

public byte[] getResponseBodyAsByteArray()
public String getResponseBodyAsString()

答案 1 :(得分:0)

将HttpClientErrorException e转换为HttpStatusCodeException:

((org.springframework.web.client.HttpStatusCodeException) e).getResponseBodyAsString()