Reputation: 179
when i use below code , what is the case to get HttpStatusCodeException
exception .
ResponseEntity<Object> response =
restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, entity, Object.class);
Please can anyone help out ????????
Upvotes: 3
Views: 34743
Reputation: 503
exhange(...) method of org.springframework.web.client.RestTemplate
class was added in 3.1.0.RELEASE
of spring-web library.
This method throws RestClientException
which covers client (4_xx) and server (5_xx) side http code errors. But RestClientException
doesn't offer getStatusCode(), getResponseAsString()
, etc... methods.
HttpsStatusCodeException
is the child of RestClientException
which is doing same thing but with additional methods like getStatusCode(), getResponseAsString()
, etc.
HttpClientErrorException
child of HttpsStatusCodeException
and only entertain client error (4_xx) not the server error.
HttpServerErrorException
child of HttpsStatusCodeException
and only entertain server error (5_xx) not the client error.
Upvotes: 8
Reputation: 4699
HTTP Status Codes are responses from the server, therefore if you have control of the server then you could make it return whichever errors you want. If you don't have control of the server then you could try sending bad/invalid requests so that the server will complain.
Something like this on your server side:
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity getAnError() {
// complain!
return ResponseEntity.status(HttpStatus.FORBIDDEN);
}
Upvotes: 2
Reputation: 1341
According to documentation there are two types of HttpStatusCodeException
HttpClientErrorException
and HttpServerErrorException
.
so you can just use ResponseEntity.BodyBuilder.status(505) for example to raise an HttpServerErrorException
in your
Upvotes: 12