75 lines
2.5 KiB
Java
75 lines
2.5 KiB
Java
package com.lxg.springboot;
|
|
|
|
import org.apache.http.client.config.RequestConfig;
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
import org.apache.http.impl.client.HttpClientBuilder;
|
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
/**
|
|
* Created by admin on 2017/2/6.
|
|
*/
|
|
@Configuration
|
|
public class HttpClient {
|
|
|
|
@Value("${http.maxTotal}")
|
|
private Integer maxTotal;
|
|
|
|
@Value("${http.defaultMaxPerRoute}")
|
|
private Integer defaultMaxPerRoute;
|
|
|
|
@Value("${http.connectTimeout}")
|
|
private Integer connectTimeout;
|
|
|
|
@Value("${http.connectionRequestTimeout}")
|
|
private Integer connectionRequestTimeout;
|
|
|
|
@Value("${http.socketTimeout}")
|
|
private Integer socketTimeout;
|
|
|
|
@Value("${http.staleConnectionCheckEnabled}")
|
|
private boolean staleConnectionCheckEnabled;
|
|
|
|
@Bean(name = "httpClientConnectionManager")
|
|
public PoolingHttpClientConnectionManager demo(){
|
|
PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager();
|
|
httpClientConnectionManager.setMaxTotal(maxTotal);
|
|
httpClientConnectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
|
|
return httpClientConnectionManager;
|
|
}
|
|
|
|
@Bean(name = "httpClientBuilder")
|
|
public HttpClientBuilder demo2(@Qualifier("httpClientConnectionManager")PoolingHttpClientConnectionManager httpClientConnectionManager){
|
|
|
|
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
|
|
|
|
httpClientBuilder.setConnectionManager(httpClientConnectionManager);
|
|
|
|
return httpClientBuilder;
|
|
}
|
|
|
|
@Bean
|
|
public CloseableHttpClient demo3(@Qualifier("httpClientBuilder") HttpClientBuilder httpClientBuilder){
|
|
return httpClientBuilder.build();
|
|
}
|
|
|
|
|
|
@Bean(name = "builder")
|
|
public RequestConfig.Builder demo4(){
|
|
RequestConfig.Builder builder = RequestConfig.custom();
|
|
return builder.setConnectTimeout(connectTimeout)
|
|
.setConnectionRequestTimeout(connectionRequestTimeout)
|
|
.setSocketTimeout(socketTimeout)
|
|
.setStaleConnectionCheckEnabled(staleConnectionCheckEnabled);
|
|
}
|
|
|
|
@Bean
|
|
public RequestConfig demo5(@Qualifier("builder") RequestConfig.Builder builder){
|
|
return builder.build();
|
|
}
|
|
|
|
}
|