Example usage for org.apache.http.impl.client DefaultConnectionKeepAliveStrategy DefaultConnectionKeepAliveStrategy

List of usage examples for org.apache.http.impl.client DefaultConnectionKeepAliveStrategy DefaultConnectionKeepAliveStrategy

Introduction

In this page you can find the example usage for org.apache.http.impl.client DefaultConnectionKeepAliveStrategy DefaultConnectionKeepAliveStrategy.

Prototype

DefaultConnectionKeepAliveStrategy

Source Link

Usage

From source file:com.joyent.manta.http.MantaConnectionFactory.java

/**
 * Configures the builder class with all of the settings needed to connect to
 * Manta./* w  ww. j a v  a 2 s.  c  om*/
 *
 * @param metricConfig nullable configuration for client metrics tracking
 * @return configured instance
 */
protected HttpClientBuilder createStandardBuilder(final MantaClientMetricConfiguration metricConfig) {
    final int maxConns = ObjectUtils.firstNonNull(config.getMaximumConnections(),
            DefaultsConfigContext.DEFAULT_MAX_CONNS);

    final int timeout = ObjectUtils.firstNonNull(config.getTimeout(),
            DefaultsConfigContext.DEFAULT_HTTP_TIMEOUT);

    final int connectionRequestTimeout = ObjectUtils.firstNonNull(config.getConnectionRequestTimeout(),
            DefaultsConfigContext.DEFAULT_CONNECTION_REQUEST_TIMEOUT);

    final Integer expectContinueTimeout = config.getExpectContinueTimeout();
    final boolean expectContinueEnabled = expectContinueTimeout != null;

    final RequestConfig requestConfig = RequestConfig.custom().setAuthenticationEnabled(false)
            .setSocketTimeout(timeout).setConnectionRequestTimeout(connectionRequestTimeout)
            .setContentCompressionEnabled(true).setExpectContinueEnabled(expectContinueEnabled).build();

    final MantaHttpRequestExecutor requestExecutor = MantaHttpRequestExecutor.Builder.create()
            .setMetricConfiguration(metricConfig).setWaitForContinue(expectContinueTimeout).build();

    final HttpClientBuilder builder = HttpClients.custom().disableAuthCaching().disableCookieManagement()
            .setUserAgent(USER_AGENT).setConnectionReuseStrategy(new DefaultConnectionReuseStrategy())
            .setMaxConnTotal(maxConns).setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy())
            .setDefaultRequestConfig(requestConfig).setConnectionManagerShared(false)
            .setRequestExecutor(requestExecutor).setConnectionBackoffStrategy(new DefaultBackoffStrategy());

    final HttpHost proxyHost = findProxyServer();

    if (proxyHost != null) {
        builder.setProxy(proxyHost);
    }

    return builder;
}

From source file:net.yacy.cora.protocol.http.HTTPClient.java

/**
 * If the Keep-Alive header is not present in the response,
 * HttpClient assumes the connection can be kept alive indefinitely.
 * Here we limit this to 5 seconds if unset and to a max of 25 seconds
 *
 * @param defaultHttpClient// ww  w .ja v  a2 s.  com
 */
private static ConnectionKeepAliveStrategy customKeepAliveStrategy() {
    return new DefaultConnectionKeepAliveStrategy() {
        @Override
        public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
            long keepAlive = super.getKeepAliveDuration(response, context);
            return Math.min(Math.max(keepAlive, 5000), 25000);
        }
    };
}

From source file:org.apache.http.impl.client.AbstractHttpClient.java

protected ConnectionKeepAliveStrategy createConnectionKeepAliveStrategy() {
    return new DefaultConnectionKeepAliveStrategy();
}