使RestTemplate进程响应正文与状态无关



我正在使用SpringMVC,我正在尝试使用Facebook API进行实验,只是为了好玩。我目前遇到的问题是,当Facebook的GRAPH Api遇到OAuthException时,它会返回200以外的其他状态代码。然而,响应的主体仍然是一个有效的json对象,我想将其解析为我的对象。

这样,当状态代码不是HTTP.2xx时,我的restTemplate将调用错误处理程序,而不解析对我的对象的响应。

有没有任何方法可以配置RestTemplate,使其无论http状态如何都应该解析响应体?

谢谢!

您可以设置客户ResponseErrorHandler

restTemplate.setErrorHandler(customerErrorHandler)

您只需要实现以下两种方法

boolean hasError(ClientHttpResponse response) throws IOException;
void handleError(ClientHttpResponse response) throws IOException;

在您的情况下,hasError总是可以返回false

最新更新