当 Spring RestTemplate 抛出 org.springframework.web.client.HttpStatusCodeException

When Spring RestTemplate throws org.springframework.web.client.HttpStatusCodeException

org.springframework.web.client.RestTemplate 方法 exchance(..) 抛出 RestClientException,它是 org.springframework.web.client.HttpStatusCodeException 的父级,当 restTeamplte.exchange(...) 抛出此异常时可能出现的情况是什么?

我检查了 javadoc 并尝试在互联网上搜索它,但没有成功。


try {
final ResponseEntity<String> response = applicationApiTemplate.exchange(uri,
                    HttpMethod.GET, entity, String.class);
} catch(HttpStatusCodeException e) {
// when possibly i will get this error?
}

org.springframework.web.client.RestTemplate class 的

exhange(...) 方法已添加到 spring-web 库的 3.1.0.RELEASE 中。

此方法抛出 RestClientException,涵盖客户端 (4_xx) 和服务器 (5_xx) 端 http 代码错误。但是 RestClientException 不提供 getStatusCode(), getResponseAsString() 等...方法。

  1. HttpsStatusCodeExceptionRestClientException 的 child,它做同样的事情,但使用 getStatusCode(), getResponseAsString() 等其他方法

  2. HttpClientErrorException child of HttpsStatusCodeException 并且只处理客户端错误 (4_xx) 而不是服务器错误。

  3. HttpServerErrorException child of HttpsStatusCodeException 并且只招待服务器错误 (5_xx) 而不是客户端错误