Используя sping restTemplate с тайм-аутом, как мне определить тайм-аут?

Я инициализировал мой restTemplate следующим образом:

HttpClient httpClient = HttpClientBuilder.create().build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(1000);
requestFactory.setReadTimeout(1000);
restTemplate = new RestTemplate(requestFactory);

и я называю это так:

restTemplate.getForEntity(someString, String.class, SomeHashmapWithURLParameters)

Как мне справиться с обоими тайм-аутами? Я предполагаю, что исключение будет брошено? Если да, то какое конкретное исключение я могу поймать, чтобы конкретно обрабатывать только тайм-ауты. Я разбираю другие исключения по-разному.

1 ответ

Решение

В случае RestTemplateКогда истечет время ожидания запроса, Spring выдаст ResourceAccessException. Основным исключением в этом случае будет java.net.SocketTimeoutException с сообщением "Тайм-аут чтения".

Другие вопросы по тегам