com.xiongyingqi.common.http.HttpClientFactory Maven / Gradle / Ivy
The newest version!
package com.xiongyingqi.common.http;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.protocol.HttpContext;
import java.util.concurrent.TimeUnit;
/**
* @author xiongyingqi
* @since 2018/1/21
*/
public class HttpClientFactory {
public static final int TIME_OUT_SECONDS = 6;
public static final int MAX_CONNECTION = 200;
public static final ConnectionKeepAliveStrategy STRATEGY = new DefaultConnectionKeepAliveStrategy() {
@Override
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
long keepAliveDuration = super.getKeepAliveDuration(response, context);
if (keepAliveDuration == -1) {
return TIME_OUT_SECONDS * 10 * 1000;
}
return keepAliveDuration;
}
};
public static HttpClient getClient() {
CloseableHttpClient client = HttpClientBuilder
.create()
// .setDefaultRequestConfig(requestBuilder.build())
.setConnectionTimeToLive(TIME_OUT_SECONDS * 2, TimeUnit.SECONDS)
.setKeepAliveStrategy(STRATEGY)
.setMaxConnTotal(MAX_CONNECTION)
.setMaxConnPerRoute(MAX_CONNECTION / 4)
.build();
return client;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy