public HttpClient httpClient() { Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", SSLConnectionSocketFactory.getSocketFactory()) .build(); PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); connectionManager.setMaxTotal(1000); //设置整个连接池最大连接数 根据自己的场景决定 connectionManager.setDefaultMaxPerRoute(500); //路由是对maxTotal的细分,并发数 RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(10000) //服务器返回数据(response)的时间,超过该时间抛出read timeout .setConnectTimeout(10000)//连接上服务器(握手成功)的时间,超出该时间抛出connect timeout .setConnectionRequestTimeout(8000)//从连接池中获取连接的超时时间,超过该时间未拿到可用连接,会抛出org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool .build(); return HttpClientBuilder.create() .setDefaultRequestConfig(requestConfig) .setConnectionManager(connectionManager) .setRetryHandler(new DefaultHttpRequestRetryHandler(2, true)) // 重试次数 .build(); }
Http工具类
最新推荐文章于 2024-08-15 18:37:29 发布