在我的restful webservice中,如果出现错误请求(5xx)或4xx respose代码,我会在响应中写一个自定义 Headers “x-app-err-id” .
在客户端,我使用RestTemplate的交换方法来进行RestFul Web服务调用 . 当响应代码为2xx时,一切都很好 .
ResponseEntity<Component> response = restTemplate.exchange(webSvcURL,
HttpMethod.POST,
requestEntity,
Component.class);
但是如果有异常(HttpStatusCodeException),因为它是一个错误的请求(5xx)或4xx,在HttpStatusCodeException的catch块中,我得到响应(见上文)为null,所以我没有访问我的自定义头我在我的网络服务中设置 . 如果RestTemplate中存在异常,如何从响应中获取自定义标头 .
还有一个问题是,我在错误的情况下在响应体中设置了一个错误对象(json),我想知道如何在RestTemplate中出现异常时访问响应体
2 回答
我终于使用ResponseErrorHandler做了它 .
然后通过配置如下所示为RestTemplate使用此自定义响应处理程序
您不必创建自定义错误处理程序 . 您可以从被抛出的HttpStatusCodeException获取正文和 Headers .