Spring использует стандартный код состояния в своем перечислении.Вы можете найти коды состояния здесь: org.springframework.http.HttpStatus
.
Возможно, запрашиваемый вами API не возвращает стандартный код статуса HTTP.Лучше всего создать собственный обработчик ошибок, например:
var r = new RestTemplate();
r.setErrorHandler(new ResponseErrorHandler() {
@Override
public boolean hasError(ClientHttpResponse response) throws IOException {
return response.getRawStatusCode() != 550;
}
@Override
public void handleError(ClientHttpResponse response) {
// Do nothing?
}
});
var response = r.exchange("https://httpbin.org/status/550", HttpMethod.GET, null, String.class);
System.out.println(response.getStatusCodeValue());
В основном мы говорим, что если возвращен код состояния 550 (не стандартный код), мы не хотимсделать что-нибудь с этим.
Другой вариант, который у вас есть, это, конечно, перехватить исключение и что-то с этим сделать.
try {
// Call the API here
} catch (IllegalArgumentException e) {
// Do something about it here...
}