Spring Rest Client希望看到错误消息而不是异常

时间:2014-10-16 12:25:15

标签: java spring rest resttemplate

我有一个弹簧休息客户端。如果标题中没有提供身份验证详细信息,我使用

命中服务
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服务收到的错误消息?

1 个答案:

答案 0 :(得分:33)

我对自己的问题发表回答感到很奇怪。但我终于通过以下方式实现了它......

} catch (HttpClientErrorException e) {
      System.out.println(e.getStatusCode());
      System.out.println(e.getResponseBodyAsString());
    }

我错误地在响应实体中搜索错误。但它可以在例外情况下使用。