当我使用下面的代码时,获得HttpStatusCodeException
异常的情况是什么。
ResponseEntity<Object> response =
restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, entity, Object.class);
请任何人帮帮忙????????
答案 0 :(得分:5)
根据文档,HttpStatusCodeException
HttpClientErrorException
和HttpServerErrorException
有两种类型。
所以你可以使用ResponseEntity.BodyBuilder.status(505)在你的
中引发HttpServerErrorException
答案 1 :(得分:1)
HTTP状态代码是来自服务器的响应,因此如果您拥有对服务器的控制权,那么您可以让它返回您想要的任何错误。如果您无法控制服务器,则可以尝试发送错误/无效请求,以便服务器发出抱怨。
服务器端有这样的东西:
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity getAnError() {
// complain!
return ResponseEntity.status(HttpStatus.FORBIDDEN);
}
答案 2 :(得分:1)
org.springframework.web.client.RestTemplate
中添加了3.1.0.RELEASE
类的exhange(...)方法。
此方法抛出RestClientException
,该错误覆盖了客户端(4_xx)和服务器(5_xx)端的HTTP代码错误。但是RestClientException
不提供getStatusCode(), getResponseAsString()
等方法。
HttpsStatusCodeException
是RestClientException
的子级,它正在执行相同的操作,但具有诸如getStatusCode(), getResponseAsString()
等的其他方法。
HttpClientErrorException
的子节点HttpsStatusCodeException
,仅接受客户端错误(4_xx),而不是服务器错误。
HttpServerErrorException
的子节点HttpsStatusCodeException
,仅接受服务器错误(5_xx),而不是客户端错误。