9
RestTemplate
的方法如postForEntity()
throw RestClientException
。我想從catch塊中的異常對象中提取HTTP狀態碼和響應主體。我怎樣才能做到這一點?如何在拋出RestClientException時檢索HTTP狀態碼和響應主體?
RestTemplate
的方法如postForEntity()
throw RestClientException
。我想從catch塊中的異常對象中提取HTTP狀態碼和響應主體。我怎樣才能做到這一點?如何在拋出RestClientException時檢索HTTP狀態碼和響應主體?
而不是趕上RestClientException
,趕上特殊HttpClientErrorException
。
下面是一個例子:
try {
Link dataCenterLink = serviceInstance.getLink("dataCenter");
String dataCenterUrl = dataCenterLink.getHref();
DataCenterResource dataCenter =
restTemplate.getForObject(dataCenterUrl, DataCenterResource.class);
serviceInstance.setDataCenter(dataCenter);
} catch (HttpClientErrorException e) {
HttpStatus status = e.getStatusCode();
if (status != HttpStatus.NOT_FOUND) { throw e; }
}
HttpClientErrorException
提供getStatusCode
和getResponseBodyAsByteArray
獲得狀態代碼和身體,分別。
我編輯了你的答案,添加了一些更有用的細節,並使這個問題/答案作爲規範更加有用。 –
偉大的編輯。謝謝! –
更通用的是由'HttpClientErrorException'和'HttpServerErrorException'繼承的'HttpStatusCodeException'。 –