【发布时间】:2017-08-25 03:22:15
【问题描述】:
(这是我们服务的蓝图)
webpage <-> proxy-server <-> api-server <-> datebase
[-------- my work ---------][------- not mine -------]
我使用“RestTemplate.exchange”从代理服务器向 api-server 发送请求。
@Override
public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType)
throws RestClientException {
Assert.notNull(requestEntity, "'requestEntity' must not be null");
Type type = responseType.getType();
RequestCallback requestCallback = httpEntityCallback(requestEntity, type);
ResponseExtractor<ResponseEntity<T>> responseExtractor = responseEntityExtractor(type);
return execute(requestEntity.getUrl(), requestEntity.getMethod(), requestCallback, responseExtractor);
}
这是我的问题。
Api 服务器使用 ?VO 产生 503 错误。 他们是这样送我的。
{
"result": {
"responseCode": "..."
},
"data": {
"time": ...,
}
}
但是当这个响应到达restTemplate时,restTemplate将它发送给errorHandler并捕获异常。
(in RestTemplate.java)
protected void handleResponse(URI url, HttpMethod method, ClientHttpResponse response) throws IOException {
ResponseErrorHandler errorHandler = getErrorHandler();
boolean hasError = errorHandler.hasError(response); // -> hasError:true!
...
}
而且我无法在函数之外得到响应。 我如何得到这个回复?
【问题讨论】:
标签: spring resttemplate http-status-code-503