下面列出了org.springframework.http.client.Netty4ClientHttpRequestFactory#setReadTimeout ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Create rest template.
*
* @param readTimeout
* @return
*/
public RestTemplate createRestTemplate(long readTimeout) {
Assert.state(readTimeout > 0, String.format("Invalid value for read timeout for %s", readTimeout));
Netty4ClientHttpRequestFactory factory = new Netty4ClientHttpRequestFactory();
factory.setConnectTimeout(config.getConnectTimeout());
factory.setReadTimeout((int) readTimeout);
factory.setMaxResponseSize(config.getMaxResponseSize());
RestTemplate restTemplate = new RestTemplate(factory);
Map<String, String> headers = new HashMap<>(config.getHeaders());
if (headers.containsKey(AUTHORIZATION)) {
// To avoid redundant addition of header
headers.remove(AUTHORIZATION);
}
if (!headers.isEmpty()) {
restTemplate.setInterceptors(asList(new GenericRequestHeaderInterceptor(headers)));
}
return restTemplate;
}
@Bean
public ClientHttpRequestFactory netty4ClientHttpRequestFactory() {
Netty4ClientHttpRequestFactory factory = new Netty4ClientHttpRequestFactory();
factory.setReadTimeout(5000);
factory.setConnectTimeout(5000);
factory.setMaxResponseSize(1024 * 1024 * 10);
return factory;
}
@Bean
@ConditionalOnMissingBean
public ClientHttpRequestFactory netty4ClientHttpRequestFactory(
RemoteProperties config/* , SslContext sslContext */) {
Netty4ClientHttpRequestFactory factory = new Netty4ClientHttpRequestFactory();
factory.setReadTimeout(config.getReadTimeout());
factory.setConnectTimeout(config.getConnectTimeout());
factory.setMaxResponseSize(config.getMaxResponseSize());
// factory.setSslContext(sslContext);
return factory;
}
@Override
public void afterPropertiesSet() throws Exception {
Netty4ClientHttpRequestFactory factory = new Netty4ClientHttpRequestFactory();
factory.setConnectTimeout(config.getVcs().getConnectTimeout());
factory.setReadTimeout(config.getVcs().getReadTimeout());
factory.setMaxResponseSize(config.getVcs().getMaxResponseSize());
this.restTemplate = new RestTemplate(factory);
}
@Override
public void afterPropertiesSet() throws Exception {
Netty4ClientHttpRequestFactory factory = new Netty4ClientHttpRequestFactory();
factory.setConnectTimeout(config.getPcm().getConnectTimeout());
factory.setReadTimeout(config.getPcm().getReadTimeout());
factory.setMaxResponseSize(config.getPcm().getMaxResponseSize());
this.restTemplate = new RestTemplate(factory);
}
static ClientHttpRequestFactory usingNetty(ClientOptions options, SslConfiguration sslConfiguration)
throws GeneralSecurityException, IOException {
Netty4ClientHttpRequestFactory requestFactory = new Netty4ClientHttpRequestFactory();
if (hasSslConfiguration(sslConfiguration)) {
SslContextBuilder sslContextBuilder = SslContextBuilder //
.forClient();
if (sslConfiguration.getTrustStoreConfiguration().isPresent()) {
sslContextBuilder
.trustManager(createTrustManagerFactory(sslConfiguration.getTrustStoreConfiguration()));
}
if (sslConfiguration.getKeyStoreConfiguration().isPresent()) {
sslContextBuilder.keyManager(createKeyManagerFactory(sslConfiguration.getKeyStoreConfiguration(),
sslConfiguration.getKeyConfiguration()));
}
requestFactory.setSslContext(sslContextBuilder.sslProvider(SslProvider.JDK).build());
}
requestFactory.setConnectTimeout(Math.toIntExact(options.getConnectionTimeout().toMillis()));
requestFactory.setReadTimeout(Math.toIntExact(options.getReadTimeout().toMillis()));
return requestFactory;
}