PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(100);
connectionManager.setDefaultMaxPerRoute(20);
CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(connectionManager)
.build();
HttpGet request = new HttpGet("http://www.example.com");
CloseableHttpResponse response = httpClient.execute(request);
httpClient.close();
RequestConfig requestConfig = RequestConfig.custom()
.build();
HttpGet request = new HttpGet("http://www.example.com");
request.setConfig(requestConfig);
CloseableHttpResponse response = httpClient.execute(request);
List<Callable<HttpResponse>> tasks = new ArrayList<>();
for (int i = 0; i < 10; i++) {
tasks.add(() -> {
CloseableHttpResponse response = httpClient.execute(new HttpGet("http://www.example.com"));
return response;
});
}
List<Future<HttpResponse>> results = executorService.invokeAll(tasks);
for (Future<HttpResponse> result : results) {
HttpResponse response = result.get();
}
executorService.shutdown();