When HttpStatusCodeException exception raised?

ε祈祈猫儿з 提交于 2019-12-02 13:35:23

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);
}

According to documentation there are two types of HttpStatusCodeException HttpClientErrorException and HttpServerErrorException.

  • The former is thrown when an HTTP 4xx is received.
  • The latter is thrown when an HTTP 5xx is received.

so you can just use ResponseEntity.BodyBuilder.status(505) for example to raise an HttpServerErrorException in your

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.

  1. HttpsStatusCodeException is the child of RestClientException which is doing same thing but with additional methods like getStatusCode(), getResponseAsString(), etc.

  2. HttpClientErrorException child of HttpsStatusCodeException and only entertain client error (4_xx) not the server error.

  3. HttpServerErrorException child of HttpsStatusCodeException and only entertain server error (5_xx) not the client error.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!