in src/main/java/com/epam/dep/esp/common/web/Web.java [55:108]
public Web(int timeout) {
// Increase max total connection to 200
cm.setMaxTotal(200);
// Increase default max connection per route to 20
cm.setDefaultMaxPerRoute(20);
//Follow redirects
LaxRedirectStrategy redirectStrategy = new LaxRedirectStrategy();
httpClient = HttpClients.custom()
.setConnectionManager(cm)
.setRedirectStrategy(redirectStrategy)
.addInterceptorFirst(new HttpRequestInterceptor() {
public void process(
final HttpRequest request,
final HttpContext context) throws HttpException, IOException {
request.setHeader(HttpHeaders.ACCEPT_ENCODING, "gzip");
request.addHeader(HttpHeaders.ACCEPT_ENCODING, "deflate");
}
})
.addInterceptorFirst(new HttpResponseInterceptor() {
public void process(
final HttpResponse response,
final HttpContext context) throws HttpException, IOException {
HttpEntity entity = response.getEntity();
if (entity != null) {
Header ceHeader = entity.getContentEncoding();
if (ceHeader != null) {
HeaderElement[] codecs = ceHeader.getElements();
for (int i = 0; i < codecs.length; i++) {
if (codecs[i].getName().equalsIgnoreCase("gzip")) {
response.setEntity(
new GzipDecompressingEntity(response.getEntity()));
return;
}
if (codecs[i].getName().equalsIgnoreCase("deflate")) {
response.setEntity(
new DeflateDecompressingEntity(response.getEntity()));
return;
}
}
}
}
}
})
.build();
requestConfig = RequestConfig.custom()
.setSocketTimeout(timeout)
.setConnectTimeout(timeout)
.setConnectionRequestTimeout(timeout)
.build();
}