RestTemplate не поддерживает HTTP-коды, кроме 200. Одним из решений является использование HttpStatusCodeException для перехвата других типов HTTP-кодов.
try {
restTemplate.getForObject("https://api.twitter.com/1.1/followers/ids.json", Object.class);
}
} catch (HttpStatusCodeException e) {
if (e.getStatusCode() == HttpStatus.BAD_REQUEST) { // Http code 400
String bodyResponse = e.getResponseBodyAsString();
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(bodyResponse, Object.class);
} catch (Exception exception) {
}
}
А если вы используете Spring, вы можете настроить Bean RestTemplate следующим образом:
@Bean
public RestTemplate restTemplate() {
return new RestTemplate(new HttpComponentsClientHttpRequestFactory());
}
Надеюсь, это поможет.