HttpClientFactory.java 1.19 KB
package com.zhaoonline.common.es;


import org.apache.http.client.config.RequestConfig;
import org.apache.http.conn.HttpClientConnectionManager;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;

public class HttpClientFactory {
	private static Integer SOCKET_TIMEOUT =10000;
	private static Integer CONNECTION_TIMEOUT=4000;
	
	public static final CloseableHttpClient newClient() {
		final HttpClientBuilder builder = HttpClientBuilder.create();
		builder.setConnectionManager(newConnectionManager());

		final RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(SOCKET_TIMEOUT)
				.setConnectTimeout(CONNECTION_TIMEOUT).build();
		builder.setDefaultRequestConfig(requestConfig);

		CloseableHttpClient httpclient = builder.build();
		return httpclient;
	}
	public static final HttpClientConnectionManager newConnectionManager() {
		// 默认支持http和https协议
		final PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
		cm.setMaxTotal(200);
		cm.setDefaultMaxPerRoute(20);
		cm.setValidateAfterInactivity(0);
		return cm;
	}

}