我有一个弹簧休息客户端。如果标题中没有提供身份验证详细信息,我使用
命中服务ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
我得到例外:
在线程&#34; main&#34;中调用错误处理程序异常 org.springframework.web.client.HttpClientErrorException:401 未经授权的 org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
但是当我在mozilla浏览器上点击网址时,我会收到类似
的消息{"errors":[{"code":"xxxx","reason":"xxxx"}]}
现在这就是我想要的:我想在我的代码中捕获此错误消息而不是获得401异常。我试着看看响应中是否有任何内容。但收到的回复是空的。如何捕获从Web服务收到的错误消息?
答案 0 :(得分:33)
我对自己的问题发表回答感到很奇怪。但我终于通过以下方式实现了它......
} catch (HttpClientErrorException e) {
System.out.println(e.getStatusCode());
System.out.println(e.getResponseBodyAsString());
}
我错误地在响应实体中搜索错误。但它可以在例外情况下使用。