何时引发 HttpStatusCodeException 异常?
When HttpStatusCodeException exception raised?
当我使用下面的代码时,出现 HttpStatusCodeException
异常是什么情况。
ResponseEntity<Object> response =
restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, entity, Object.class);
请问有谁能帮忙吗???????
HTTP 状态代码是来自服务器的响应,因此如果您可以控制服务器,那么您可以return 使其成为您想要的任何错误。如果您无法控制服务器,那么您可以尝试发送 bad/invalid 请求,这样服务器就会抱怨。
你的服务器端是这样的:
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity getAnError() {
// complain!
return ResponseEntity.status(HttpStatus.FORBIDDEN);
}
根据文档,有两种类型 HttpStatusCodeException
HttpClientErrorException
和 HttpServerErrorException
。
- 前者在收到 HTTP 4xx 时抛出。
- 后者在收到 HTTP 5xx 时抛出。
所以你可以只使用 ResponseEntity.BodyBuilder.status(505) 例如在你的
中引发 HttpServerErrorException
org.springframework.web.client.RestTemplate
class 的
exhange(...) 方法已添加到 spring-web 库的 3.1.0.RELEASE
中。
此方法抛出 RestClientException
,涵盖客户端 (4_xx) 和服务器 (5_xx) 端 http 代码错误。但是 RestClientException
不提供 getStatusCode(), getResponseAsString()
等...方法。
HttpsStatusCodeException
是 RestClientException
的 child,它做同样的事情,但使用 getStatusCode(), getResponseAsString()
等其他方法
HttpClientErrorException
child of HttpsStatusCodeException
并且只处理客户端错误 (4_xx) 而不是服务器错误。
HttpServerErrorException
child of HttpsStatusCodeException
并且只处理服务器错误 (5_xx) 而不是客户端错误。
当我使用下面的代码时,出现 HttpStatusCodeException
异常是什么情况。
ResponseEntity<Object> response =
restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, entity, Object.class);
请问有谁能帮忙吗???????
HTTP 状态代码是来自服务器的响应,因此如果您可以控制服务器,那么您可以return 使其成为您想要的任何错误。如果您无法控制服务器,那么您可以尝试发送 bad/invalid 请求,这样服务器就会抱怨。
你的服务器端是这样的:
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity getAnError() {
// complain!
return ResponseEntity.status(HttpStatus.FORBIDDEN);
}
根据文档,有两种类型 HttpStatusCodeException
HttpClientErrorException
和 HttpServerErrorException
。
- 前者在收到 HTTP 4xx 时抛出。
- 后者在收到 HTTP 5xx 时抛出。
所以你可以只使用 ResponseEntity.BodyBuilder.status(505) 例如在你的
中引发HttpServerErrorException
org.springframework.web.client.RestTemplate
class 的
exhange(...) 方法已添加到 spring-web 库的 3.1.0.RELEASE
中。
此方法抛出 RestClientException
,涵盖客户端 (4_xx) 和服务器 (5_xx) 端 http 代码错误。但是 RestClientException
不提供 getStatusCode(), getResponseAsString()
等...方法。
HttpsStatusCodeException
是RestClientException
的 child,它做同样的事情,但使用getStatusCode(), getResponseAsString()
等其他方法HttpClientErrorException
child ofHttpsStatusCodeException
并且只处理客户端错误 (4_xx) 而不是服务器错误。HttpServerErrorException
child ofHttpsStatusCodeException
并且只处理服务器错误 (5_xx) 而不是客户端错误。