public Web()

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();
    }