使用具有超时的speing的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

在 的情况下,当请求超时时,Spring 将抛出 ResourceAccessException。该实例下的基础异常将包含消息“读取超时”。RestTemplatejava.net.SocketTimeoutException


答案 2

推荐