Resttemplate中设置超时时长方式

  • Post category:http

在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()方法来设置超时时间。使用其中的任意一种方法都能很好地解决超时问题。