在Resttemplate中设置超时时长有以下两种方式:
1. 使用SimpleClientHttpRequestFactory 设置超时
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(5000);
requestFactory.setReadTimeout(5000);
RestTemplate restTemplate = new RestTemplate(requestFactory);
在上述代码中,我们使用 SimpleClientHttpRequestFactory
来来创建RestTemplate
对象,并使用setConnectTimeout()
和setReadTimeout()
方法来设置连接超时时间和读取超时时间,以修改其默认超时值(30秒)。
2. 使用HttpComponentsClientHttpRequestFactory 设置超时
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
factory.setConnectTimeout(5000);
factory.setReadTimeout(5000);
RestTemplate restTemplate = new RestTemplate(factory);
在上述代码中,我们使用HttpComponentsClientHttpRequestFactory
来来创建RestTemplate
对象,并使用setConnectTimeout()
和setReadTimeout()
方法来设置连接超时时间和读取超时时间,以修改其默认超时值(30秒)。
需要注意的是,使用第二种方法时,需要导入如下包:
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
以上就是在Resttemplate中设置超时时长的两种方式的详细攻略,分别采用了不同的工厂方式来创建RestTemplate
对象,再通过工厂对象的setConnectTimeout()
和setReadTimeout()
方法来设置超时时间。使用其中的任意一种方法都能很好地解决超时问题。