public class HttpUtil { private PoolingHttpClientConnectionManager cm; private CloseableHttpClient httpClient; private RequestConfig requestConfig; //将请求连接池设置为单例 private static class SingletonCreater{ private static final HttpUtil httpUtil = new HttpUtil(); } public static final HttpUtil getInstance(){ return SingletonCreater.httpUtil; } private HttpUtil() { cm = new PoolingHttpClientConnectionManager(); //连接池最大生成连接数 cm.setMaxTotal(800); // 默认设置route最大连接数 cm.setDefaultMaxPerRoute(800); // 指定专门的route,设置最大连接数,因为IP只有一个,不需要设置指定IP的最大连接数量 // HttpHost localhost = new HttpHost("locahost", 80); // cm.setMaxPerRoute(new HttpRoute(localhost), 50); // 设置重定向策略 // LaxRedirectStrategy redirectStrategy = new LaxRedirectStrategy(); //设置请求和传输超时时间 requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(600000) .setConnectTimeout(FinalCode.REQUEST_TIMEOUT) .setSocketTimeout(FinalCode.REQUEST_SOCKET_TIME).build(); // 创建httpClient httpClient= HttpClients.custom() .setConnectionManager(cm) .setDefaultRequestConfig(requestConfig) // .setRedirectStrategy(redirectStrategy) .build(); } public CloseableHttpClient getHttpClient() { return httpClient; } }
HttpClient连接池的配置
最新推荐文章于 2024-01-07 00:31:18 发布