Example usage for org.apache.http.client.config RequestConfig copy

List of usage examples for org.apache.http.client.config RequestConfig copy

Introduction

In this page you can find the example usage for org.apache.http.client.config RequestConfig copy.

Prototype

public static RequestConfig.Builder copy(final RequestConfig config) 

Source Link

Usage

From source file:org.glassfish.jersey.apache.connector.ApacheConnector.java

/**
 * Create the new Apache HTTP Client connector.
 *
 * @param client JAX-RS client instance for which the connector is being created.
 * @param config client configuration.//from   w w w .  j a v  a  2 s.  c o m
 */
ApacheConnector(final Client client, final Configuration config) {
    final Object connectionManager = config.getProperties().get(ApacheClientProperties.CONNECTION_MANAGER);
    if (connectionManager != null) {
        if (!(connectionManager instanceof HttpClientConnectionManager)) {
            LOGGER.log(Level.WARNING,
                    LocalizationMessages.IGNORING_VALUE_OF_PROPERTY(ApacheClientProperties.CONNECTION_MANAGER,
                            connectionManager.getClass().getName(),
                            HttpClientConnectionManager.class.getName()));
        }
    }

    Object reqConfig = config.getProperties().get(ApacheClientProperties.REQUEST_CONFIG);
    if (reqConfig != null) {
        if (!(reqConfig instanceof RequestConfig)) {
            LOGGER.log(Level.WARNING,
                    LocalizationMessages.IGNORING_VALUE_OF_PROPERTY(ApacheClientProperties.REQUEST_CONFIG,
                            reqConfig.getClass().getName(), RequestConfig.class.getName()));
            reqConfig = null;
        }
    }

    final SSLContext sslContext = client.getSslContext();
    final HttpClientBuilder clientBuilder = HttpClientBuilder.create();

    clientBuilder.setConnectionManager(getConnectionManager(client, config, sslContext));
    clientBuilder.setConnectionManagerShared(PropertiesHelper.getValue(config.getProperties(),
            ApacheClientProperties.CONNECTION_MANAGER_SHARED, false, null));
    clientBuilder.setSslcontext(sslContext);

    final RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();

    final Object credentialsProvider = config.getProperty(ApacheClientProperties.CREDENTIALS_PROVIDER);
    if (credentialsProvider != null && (credentialsProvider instanceof CredentialsProvider)) {
        clientBuilder.setDefaultCredentialsProvider((CredentialsProvider) credentialsProvider);
    }

    final Object retryHandler = config.getProperties().get(ApacheClientProperties.RETRY_HANDLER);
    if (retryHandler != null && (retryHandler instanceof HttpRequestRetryHandler)) {
        clientBuilder.setRetryHandler((HttpRequestRetryHandler) retryHandler);
    }

    final Object proxyUri;
    proxyUri = config.getProperty(ClientProperties.PROXY_URI);
    if (proxyUri != null) {
        final URI u = getProxyUri(proxyUri);
        final HttpHost proxy = new HttpHost(u.getHost(), u.getPort(), u.getScheme());
        final String userName;
        userName = ClientProperties.getValue(config.getProperties(), ClientProperties.PROXY_USERNAME,
                String.class);
        if (userName != null) {
            final String password;
            password = ClientProperties.getValue(config.getProperties(), ClientProperties.PROXY_PASSWORD,
                    String.class);

            if (password != null) {
                final CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new AuthScope(u.getHost(), u.getPort()),
                        new UsernamePasswordCredentials(userName, password));
                clientBuilder.setDefaultCredentialsProvider(credsProvider);
            }
        }
        clientBuilder.setProxy(proxy);
    }

    final Boolean preemptiveBasicAuthProperty = (Boolean) config.getProperties()
            .get(ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION);
    this.preemptiveBasicAuth = (preemptiveBasicAuthProperty != null) ? preemptiveBasicAuthProperty : false;

    final boolean ignoreCookies = PropertiesHelper.isProperty(config.getProperties(),
            ApacheClientProperties.DISABLE_COOKIES);

    if (reqConfig != null) {
        final RequestConfig.Builder reqConfigBuilder = RequestConfig.copy((RequestConfig) reqConfig);
        if (ignoreCookies) {
            reqConfigBuilder.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
        }
        requestConfig = reqConfigBuilder.build();
    } else {
        if (ignoreCookies) {
            requestConfigBuilder.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
        }
        requestConfig = requestConfigBuilder.build();
    }

    if (requestConfig.getCookieSpec() == null
            || !requestConfig.getCookieSpec().equals(CookieSpecs.IGNORE_COOKIES)) {
        this.cookieStore = new BasicCookieStore();
        clientBuilder.setDefaultCookieStore(cookieStore);
    } else {
        this.cookieStore = null;
    }
    clientBuilder.setDefaultRequestConfig(requestConfig);
    this.client = clientBuilder.build();
}

From source file:com.github.dockerjava.jaxrs.connector.ApacheConnector.java

/**
 * Create the new Apache HTTP Client connector.
 *
 * @param config client configuration.//from w  w  w . j ava 2s  .  c om
 */
ApacheConnector(Configuration config) {
    Object reqConfig = null;

    if (config != null) {
        final Object connectionManager = config.getProperties().get(ApacheClientProperties.CONNECTION_MANAGER);

        if (connectionManager != null) {
            if (!(connectionManager instanceof HttpClientConnectionManager)) {
                LOGGER.log(Level.WARNING, LocalizationMessages.IGNORING_VALUE_OF_PROPERTY(
                        ApacheClientProperties.CONNECTION_MANAGER, connectionManager.getClass().getName(),
                        HttpClientConnectionManager.class.getName()));
            }
        }

        reqConfig = config.getProperties().get(ApacheClientProperties.REQUEST_CONFIG);
        if (reqConfig != null) {
            if (!(reqConfig instanceof RequestConfig)) {
                LOGGER.log(Level.WARNING,
                        LocalizationMessages.IGNORING_VALUE_OF_PROPERTY(ApacheClientProperties.REQUEST_CONFIG,
                                reqConfig.getClass().getName(), RequestConfig.class.getName()));
                reqConfig = null;
            }
        }
    }

    final SSLContext sslContext = getSslContext(config);
    final HttpClientBuilder clientBuilder = HttpClientBuilder.create();

    clientBuilder.setConnectionManager(getConnectionManager(config, sslContext));
    clientBuilder.setSslcontext(sslContext);

    final RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();

    int connectTimeout = 0;
    int socketTimeout = 0;
    boolean ignoreCookies = false;
    if (config != null) {
        connectTimeout = ClientProperties.getValue(config.getProperties(), ClientProperties.CONNECT_TIMEOUT, 0);
        socketTimeout = ClientProperties.getValue(config.getProperties(), ClientProperties.READ_TIMEOUT, 0);
        ignoreCookies = PropertiesHelper.isProperty(config.getProperties(),
                ApacheClientProperties.DISABLE_COOKIES);

        final Object credentialsProvider = config.getProperty(ApacheClientProperties.CREDENTIALS_PROVIDER);
        if (credentialsProvider != null && (credentialsProvider instanceof CredentialsProvider)) {
            clientBuilder.setDefaultCredentialsProvider((CredentialsProvider) credentialsProvider);
        }

        Object proxyUri;
        proxyUri = config.getProperty(ClientProperties.PROXY_URI);
        if (proxyUri != null) {
            final URI u = getProxyUri(proxyUri);
            final HttpHost proxy = new HttpHost(u.getHost(), u.getPort(), u.getScheme());
            String userName;
            userName = ClientProperties.getValue(config.getProperties(), ClientProperties.PROXY_USERNAME,
                    String.class);
            if (userName != null) {
                String password;
                password = ClientProperties.getValue(config.getProperties(), ClientProperties.PROXY_PASSWORD,
                        String.class);

                if (password != null) {
                    final CredentialsProvider credsProvider = new BasicCredentialsProvider();
                    credsProvider.setCredentials(new AuthScope(u.getHost(), u.getPort()),
                            new UsernamePasswordCredentials(userName, password));
                    clientBuilder.setDefaultCredentialsProvider(credsProvider);
                }
            }
            clientBuilder.setProxy(proxy);
        }

        final Boolean preemptiveBasicAuthProperty = (Boolean) config.getProperties()
                .get(ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION);
        this.preemptiveBasicAuth = (preemptiveBasicAuthProperty != null) ? preemptiveBasicAuthProperty : false;
    } else {
        this.preemptiveBasicAuth = false;
    }

    if (reqConfig != null) {
        RequestConfig.Builder reqConfigBuilder = RequestConfig.copy((RequestConfig) reqConfig);
        if (connectTimeout > 0) {
            reqConfigBuilder.setConnectTimeout(connectTimeout);
        }
        if (socketTimeout > 0) {
            reqConfigBuilder.setSocketTimeout(socketTimeout);
        }
        if (ignoreCookies) {
            reqConfigBuilder.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
        }
        requestConfig = reqConfigBuilder.build();
    } else {
        requestConfigBuilder.setConnectTimeout(connectTimeout);
        requestConfigBuilder.setSocketTimeout(socketTimeout);
        if (ignoreCookies) {
            requestConfigBuilder.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
        }
        requestConfig = requestConfigBuilder.build();
    }

    if (requestConfig.getCookieSpec() == null
            || !requestConfig.getCookieSpec().equals(CookieSpecs.IGNORE_COOKIES)) {
        this.cookieStore = new BasicCookieStore();
        clientBuilder.setDefaultCookieStore(cookieStore);
    } else {
        this.cookieStore = null;
    }
    clientBuilder.setDefaultRequestConfig(requestConfig);
    this.client = clientBuilder.build();
}

From source file:run.var.teamcity.cloud.docker.client.apcon.ApacheConnector.java

/**
 * Create the new Apache HTTP Client connector.
 *
 * @param client JAX-RS client instance for which the connector is being created.
 * @param config client configuration./*from   w  w  w.j a v  a  2 s  .  c  o  m*/
 */
ApacheConnector(final Client client, final Configuration config) {
    final Object connectionManager = config.getProperties().get(ApacheClientProperties.CONNECTION_MANAGER);
    if (connectionManager != null) {
        if (!(connectionManager instanceof HttpClientConnectionManager)) {
            LOGGER.log(Level.WARNING,
                    LocalizationMessages.IGNORING_VALUE_OF_PROPERTY(ApacheClientProperties.CONNECTION_MANAGER,
                            connectionManager.getClass().getName(),
                            HttpClientConnectionManager.class.getName()));
        }
    }

    Object reqConfig = config.getProperties().get(ApacheClientProperties.REQUEST_CONFIG);
    if (reqConfig != null) {
        if (!(reqConfig instanceof RequestConfig)) {
            LOGGER.log(Level.WARNING,
                    LocalizationMessages.IGNORING_VALUE_OF_PROPERTY(ApacheClientProperties.REQUEST_CONFIG,
                            reqConfig.getClass().getName(), RequestConfig.class.getName()));
            reqConfig = null;
        }
    }

    final SSLContext sslContext = client.getSslContext();
    final HttpClientBuilder clientBuilder = HttpClientBuilder.create();

    clientBuilder.setConnectionManager(getConnectionManager(client, config, sslContext));
    clientBuilder.setConnectionManagerShared(PropertiesHelper.getValue(config.getProperties(),
            ApacheClientProperties.CONNECTION_MANAGER_SHARED, false, null));
    clientBuilder.setSslcontext(sslContext);

    final RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();

    final Object credentialsProvider = config.getProperty(ApacheClientProperties.CREDENTIALS_PROVIDER);
    if (credentialsProvider != null && (credentialsProvider instanceof CredentialsProvider)) {
        clientBuilder.setDefaultCredentialsProvider((CredentialsProvider) credentialsProvider);
    }

    final Object proxyUri;
    proxyUri = config.getProperty(ClientProperties.PROXY_URI);
    if (proxyUri != null) {
        final URI u = getProxyUri(proxyUri);
        final HttpHost proxy = new HttpHost(u.getHost(), u.getPort(), u.getScheme());
        final String userName;
        userName = ClientProperties.getValue(config.getProperties(), ClientProperties.PROXY_USERNAME,
                String.class);
        if (userName != null) {
            final String password;
            password = ClientProperties.getValue(config.getProperties(), ClientProperties.PROXY_PASSWORD,
                    String.class);

            if (password != null) {
                final CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new AuthScope(u.getHost(), u.getPort()),
                        new UsernamePasswordCredentials(userName, password));
                clientBuilder.setDefaultCredentialsProvider(credsProvider);
            }
        }
        clientBuilder.setProxy(proxy);
    }

    final Boolean preemptiveBasicAuthProperty = (Boolean) config.getProperties()
            .get(ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION);
    this.preemptiveBasicAuth = (preemptiveBasicAuthProperty != null) ? preemptiveBasicAuthProperty : false;

    final boolean ignoreCookies = PropertiesHelper.isProperty(config.getProperties(),
            ApacheClientProperties.DISABLE_COOKIES);

    if (reqConfig != null) {
        final RequestConfig.Builder reqConfigBuilder = RequestConfig.copy((RequestConfig) reqConfig);
        if (ignoreCookies) {
            reqConfigBuilder.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
        }
        requestConfig = reqConfigBuilder.build();
    } else {
        if (ignoreCookies) {
            requestConfigBuilder.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
        }
        requestConfig = requestConfigBuilder.build();
    }

    if (requestConfig.getCookieSpec() == null
            || !requestConfig.getCookieSpec().equals(CookieSpecs.IGNORE_COOKIES)) {
        this.cookieStore = new BasicCookieStore();
        clientBuilder.setDefaultCookieStore(cookieStore);
    } else {
        this.cookieStore = null;
    }
    clientBuilder.setDefaultRequestConfig(requestConfig);

    /* DK_CLD: Add our connection reuse strategy. */
    clientBuilder.setConnectionReuseStrategy(new UpgradeAwareConnectionReuseStrategy());
    clientBuilder.setRequestExecutor(new HttpRequestExecutor() {
        protected HttpResponse doReceiveResponse(final HttpRequest request,
                final org.apache.http.HttpClientConnection conn, final HttpContext context)
                throws HttpException, IOException {
            Args.notNull(request, "HTTP request");
            Args.notNull(conn, "Client connection");
            Args.notNull(context, "HTTP context");
            HttpResponse response = null;
            int statusCode = 0;

            while (response == null || (statusCode < HttpStatus.SC_OK
                    // DK_CLD: the original implementation provided this loop to retry the HTTP request as long as
                    // an intermediate response is returned (1xx status). This is however not suitable for the
                    // status code 101 returned from Docker (and more generally, WebSockets) to notify that the
                    // connection has been upgraded to raw TCP streaming. In such case the server ultimate response
                    // is not HTTP anymore.
                    && statusCode != HttpStatus.SC_SWITCHING_PROTOCOLS)) {

                response = conn.receiveResponseHeader();
                if (canResponseHaveBody(request, response)) {
                    conn.receiveResponseEntity(response);
                }
                statusCode = response.getStatusLine().getStatusCode();

            } // while intermediate response

            return response;
        }

        @Override
        protected boolean canResponseHaveBody(HttpRequest request, HttpResponse response) {
            boolean canResponseHaveBody = super.canResponseHaveBody(request, response);
            return canResponseHaveBody
                    || response.getStatusLine().getStatusCode() == HttpStatus.SC_SWITCHING_PROTOCOLS;
        }
    });

    this.client = clientBuilder.build();
}

From source file:nl.mineleni.cbsviewer.servlet.ReverseProxyServlet.java

/**
 * Initialize variables called when context is initialized. Leest de waarden
 * van {@link #ALLOWED_HOSTS} (verplichte optie) en {@link #FORCE_XML_MIME}
 * uit de configuratie./* w ww .  j a v  a 2s  .  com*/
 *
 * @param config
 *            the <code>ServletConfig</code> object that contains
 *            configutation information for this servlet
 * @throws ServletException
 *             if an exception occurs that interrupts the servlet's normal
 *             operation
 */
@Override
public void init(final ServletConfig config) throws ServletException {
    super.init(config);
    final String forceXML = config.getInitParameter(FORCE_XML_MIME);
    this.forceXmlResponse = (null != forceXML ? Boolean.parseBoolean(forceXML) : false);

    String csvHostnames = config.getInitParameter(ALLOWED_HOSTS);
    if (csvHostnames == null) {
        LOGGER.error(ERR_MSG_MISSING_CONFIG);
        throw new ServletException(ERR_MSG_MISSING_CONFIG);
    }
    // clean-up whitespace and case
    csvHostnames = csvHostnames.replaceAll("\\s", "").toLowerCase();
    final String[] names = csvHostnames.split(";");
    for (final String name : names) {
        this.allowedHosts.add(name);
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("toevoegen aan allowed host namen: " + name);
        }
    }

    // http client set up
    this.client = HttpClients.createSystem();
    this.requestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
    if ((null != this.getProxyHost()) && (this.getProxyPort() > 0)) {
        final HttpHost proxy = new HttpHost(this.getProxyHost(), this.getProxyPort(), "http");
        this.requestConfig = RequestConfig.copy(this.requestConfig).setProxy(proxy).build();
    }

    // voorgond feature info response type
    final String mType = config.getInitParameter("featureInfoType");
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("voorgrond kaartlagen mimetype: " + mType);
    }
    if ((mType != null) && (mType.length() > 0)) {
        type = CONVERTER_TYPE.valueOf(mType);
    }

}

From source file:com.fourspaces.couchdb.Session.java

public void setConnectionTimeout(int milliseconds) {
    this.requestConfig = RequestConfig.copy(this.requestConfig).setConnectTimeout(milliseconds).build();
    this.httpClient = createHttpClient();
}

From source file:com.fourspaces.couchdb.Session.java

public void setSocketTimeout(int milliseconds) {
    this.requestConfig = RequestConfig.copy(this.requestConfig).setSocketTimeout(milliseconds).build();
    this.httpClient = createHttpClient();
}

From source file:org.apache.tamaya.etcd.EtcdAccessor.java

/**
 * Access all properties. The response of:
 * //w  w w . j  a va  2 s. c  o m
 * <pre>
 * {
 * "action": "get",
 * "node": {
 * "key": "/",
 * "dir": true,
 * "nodes": [
 * {
 * "key": "/foo_dir",
 * "dir": true,
 * "modifiedIndex": 2,
 * "createdIndex": 2
 * },
 * {
 * "key": "/foo",
 * "value": "two",
 * "modifiedIndex": 1,
 * "createdIndex": 1
 * }
 * ]
 * }
 * }
 * </pre>
 * 
 * is mapped to a regular Tamaya properties map as follows:
 * 
 * <pre>
 *    key1=myvalue
 *     _key1.source=[etcd]http://127.0.0.1:4001
 *     _key1.createdIndex=12
 *     _key1.modifiedIndex=34
 *     _key1.ttl=300
 *     _key1.expiration=...
 *
 *      key2=myvaluexxx
 *     _key2.source=[etcd]http://127.0.0.1:4001
 *     _key2.createdIndex=12
 *
 *      key3=val3
 *     _key3.source=[etcd]http://127.0.0.1:4001
 *     _key3.createdIndex=12
 *     _key3.modifiedIndex=2
 * </pre>
 *
 * @param directory remote directory to query.
 * @param recursive allows to set if querying is performed recursively
 * @return all properties read from the remote server.
 */
public Map<String, String> getProperties(String directory, boolean recursive) {
    final Map<String, String> result = new HashMap<>();
    try {
        final HttpGet get = new HttpGet(serverURL + "/v2/keys/" + directory + "?recursive=" + recursive);
        get.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout)
                .setConnectionRequestTimeout(timeout).setConnectTimeout(connectTimeout).build());
        try (CloseableHttpResponse response = httpclient.execute(get)) {

            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                final HttpEntity entity = response.getEntity();
                final JsonReader reader = readerFactory
                        .createReader(new StringReader(EntityUtils.toString(entity)));
                final JsonObject o = reader.readObject();
                final JsonObject node = o.getJsonObject("node");
                if (node != null) {
                    addNodes(result, node);
                }
                EntityUtils.consume(entity);
            }
        }
    } catch (final Exception e) {
        LOG.log(Level.INFO, "Error reading properties for '" + directory + "' from etcd: " + serverURL, e);
        result.put("_ERROR", "Error reading properties for '" + directory + "' from etcd: " + serverURL + ": "
                + e.toString());
    }
    return result;
}

From source file:com.smartsheet.api.internal.http.DefaultHttpClient.java

/**
 * Create the Apache HTTP request. Override this function to inject additional
 * haaders in the request or use a proxy.
 *
 * @param smartsheetRequest (request method and base URI come from here)
 * @return the Apache HTTP request/*ww w. ja v a2 s  .c  om*/
 */
public HttpRequestBase createApacheRequest(HttpRequest smartsheetRequest) {
    HttpRequestBase apacheHttpRequest;

    // Create Apache HTTP request based on the smartsheetRequest request type
    switch (smartsheetRequest.getMethod()) {
    case GET:
        apacheHttpRequest = new HttpGet(smartsheetRequest.getUri());
        break;
    case POST:
        apacheHttpRequest = new HttpPost(smartsheetRequest.getUri());
        break;
    case PUT:
        apacheHttpRequest = new HttpPut(smartsheetRequest.getUri());
        break;
    case DELETE:
        apacheHttpRequest = new HttpDelete(smartsheetRequest.getUri());
        break;
    default:
        throw new UnsupportedOperationException(
                "Request method " + smartsheetRequest.getMethod() + " is not supported!");
    }

    RequestConfig.Builder builder = RequestConfig.custom();
    if (apacheHttpRequest.getConfig() != null) {
        builder = RequestConfig.copy(apacheHttpRequest.getConfig());
    }
    builder.setRedirectsEnabled(true);
    RequestConfig config = builder.build();
    apacheHttpRequest.setConfig(config);
    return apacheHttpRequest;
}

From source file:com.serphacker.serposcope.scraper.http.ScrapClient.java

protected void initializeRequest(HttpRequestBase request, HttpClientContext context) {
    if (request.getFirstHeader("user-agent") == null) {
        request.setHeader("User-Agent", useragent);
    }/*from  w w w .j a  v  a  2  s .  c  om*/

    for (Header requestHeader : requestHeaders) {
        request.setHeader(requestHeader);
    }

    RequestConfig.Builder configBuilder = RequestConfig
            .copy(request.getConfig() == null ? RequestConfig.DEFAULT : request.getConfig());

    if (timeoutMS != null) {
        configBuilder.setConnectTimeout(timeoutMS);
        configBuilder.setConnectionRequestTimeout(timeoutMS);
        configBuilder.setSocketTimeout(timeoutMS);
    }

    if (maxRedirect == 0) {
        configBuilder.setRedirectsEnabled(false);
    } else {
        configBuilder.setMaxRedirects(maxRedirect);
    }

    RequestConfig config = configBuilder.build();

    context.setAttribute(HttpClientContext.REQUEST_CONFIG, config);
    request.setConfig(config);
}