Java 类org.apache.http.impl.client.DefaultHttpRequestRetryHandler 实例源码

项目:openssp    文件:DefaultConnector.java   
/**
 * 
 */
public DefaultConnector() {
    final PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
    cm.closeIdleConnections(120, TimeUnit.SECONDS);

    // would be nice to set this from outside -> keep alive
    final SocketConfig sConfig = SocketConfig.custom().setSoKeepAlive(true).setSoTimeout(Context.SOCKET_TO).build();
    cm.setDefaultSocketConfig(sConfig);

    cm.setMaxTotal(150);
    cm.setDefaultMaxPerRoute(150);
    cm.setValidateAfterInactivity(0);

    final HttpRequestRetryHandler rh = new DefaultHttpRequestRetryHandler(3, true);
    httpClient = HttpClients.custom().setRetryHandler(rh).setConnectionManager(cm).build();
}
项目:airgram    文件:RestClient.java   
public DefaultHttpClient getHttpClientInstance() {
    if (this.httpClient != null) {
        return this.httpClient;
    }
    HttpParams params = new BasicHttpParams();
    params.setParameter("http.connection.timeout", CONNECTION_TIMEOUT);
    params.setParameter("http.socket.timeout", SOCKET_TIMEOUT);
    params.setParameter("http.protocol.version", HttpVersion.HTTP_1_1);
    params.setParameter("http.useragent", "Apache-HttpClient/Android");
    params.setParameter("http.connection.stalecheck", Boolean.valueOf(false));
    this.httpClient = new DefaultHttpClient(params);
    this.httpClient.addRequestInterceptor(new GzipHttpRequestInterceptor());
    this.httpClient.addResponseInterceptor(new GzipHttpResponseInterceptor());
    this.httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    return this.httpClient;
}
项目:cuba    文件:IdpServiceLogoutCallbackInvoker.java   
public void performLogoutOnServiceProviders(String idpSessionId) {
    List<String> serviceProviderLogoutUrls = idpConfig.getServiceProviderLogoutUrls();

    asyncServiceLogoutExecutor.submit(() -> {
        HttpClientConnectionManager connectionManager = new BasicHttpClientConnectionManager();
        HttpClient client = HttpClientBuilder.create()
                .setConnectionManager(connectionManager)
                .setRetryHandler(new DefaultHttpRequestRetryHandler(3, true))
                .build();

        try {
            for (String serviceProviderLogoutUrl : serviceProviderLogoutUrls) {
                callLoggedOutServiceUrl(client, serviceProviderLogoutUrl, idpSessionId);
            }
        } catch (Throwable ex) {
            log.error("Unable to perform logout on IDP services for session {}", idpSessionId, ex);
        } finally {
            connectionManager.shutdown();
        }
    });
}
项目:junit-docker-rule    文件:HttpPingChecker.java   
private boolean ping() throws IOException {
    RequestConfig requestConfig =
            RequestConfig.custom()
                    .setSocketTimeout(HTTP_PING_TIMEOUT)
                    .setConnectTimeout(HTTP_PING_TIMEOUT)
                    .setConnectionRequestTimeout(HTTP_PING_TIMEOUT)
                    .build();
    CloseableHttpClient httpClient = HttpClientBuilder.create()
            .setDefaultRequestConfig(requestConfig)
            .setRetryHandler(new DefaultHttpRequestRetryHandler(HTTP_CLIENT_RETRIES, false))
            .build();
    try {
        CloseableHttpResponse response = httpClient.execute(RequestBuilder.create(method.toUpperCase()).setUri(url).build());
        try {
            int responseCode = response.getStatusLine().getStatusCode();
            if (responseCode == 501) {
                throw new IllegalArgumentException("Invalid or not supported HTTP method '" + method.toUpperCase() + "' for checking " + url);
            }
            return (responseCode >= statusMin && responseCode <= statusMax);
        } finally {
            response.close();
        }
    } finally {
        httpClient.close();
    }
}
项目:search    文件:HttpClientUtil.java   
/**
 * Control retry handler 
 * @param useRetry when false the client will not try to retry failed requests.
 */
public static void setUseRetry(final DefaultHttpClient httpClient,
    boolean useRetry) {
  if (!useRetry) {
    httpClient.setHttpRequestRetryHandler(NO_RETRY);
  } else {
    // if the request is not fully sent, we retry
    // streaming updates are not a problem, because they are not retryable
    httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(){
      @Override
      protected boolean handleAsIdempotent(final HttpRequest request) {
        return false; // we can't tell if a Solr request is idempotent
      }
    });
  }
}
项目:go-maven-poller    文件:RepositoryConnector.java   
/**
 * Returns a new HTTP client by the specified repository configuration.
 *
 * @return a new HTTP client by the specified repository configuration
 */
private HttpClient createHttpClient() {
    RequestConfig.Builder requestBuilder = RequestConfig.custom().setSocketTimeout(10 * 1000);

    if (repoConfig.getProxy() != null) {
        requestBuilder.setProxy(HttpHost.create(repoConfig.getProxy()));
    }

    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setDefaultRequestConfig(requestBuilder.build());
    httpClientBuilder = httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(3, false));
    httpClientBuilder = httpClientBuilder.setRedirectStrategy(new DefaultRedirectStrategy());

    if (repoConfig.getUsername() != null) {
        final Credentials creds = new UsernamePasswordCredentials(repoConfig.getUsername(), repoConfig.getPassword());
        final CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(AuthScope.ANY, creds);
        httpClientBuilder = httpClientBuilder.setDefaultCredentialsProvider(credsProvider);
    }
    return httpClientBuilder.build();
}
项目:oauth-java-sdk    文件:OAuthHttpClient.java   
public OAuthHttpClient(int maxConnection, int connectTimeout, int socketTimeout) {
    PoolingHttpClientConnectionManager connectionManager =
            new PoolingHttpClientConnectionManager(RegistryBuilder.<ConnectionSocketFactory>create()
                    .register("http", PlainConnectionSocketFactory.getSocketFactory())
                    .register("https", SSLConnectionSocketFactory.getSocketFactory())
                    .build());
    // set max connection
    connectionManager.setMaxTotal(maxConnection);

    RequestConfig requestConfig = RequestConfig.custom()
            .setConnectTimeout(connectTimeout)
            .setSocketTimeout(socketTimeout)
            .setCookieSpec(CookieSpecs.IGNORE_COOKIES)
            .build();

    httpClient = HttpClientBuilder.create()
            .setConnectionManager(connectionManager)
            .setDefaultRequestConfig(requestConfig)
            .setRetryHandler(new DefaultHttpRequestRetryHandler(3, true))
            .build();
}
项目:lightDroid    文件:HttpScheduler.java   
protected HttpResponse doConnect(HttpTask task) throws Exception
{
    mHttpParams = new BasicHttpParams();
    HttpProtocolParams.setVersion(mHttpParams, HttpVersion.HTTP_1_1);
    HttpProtocolParams.setContentCharset(mHttpParams, "utf-8");
    HttpConnectionParams.setConnectionTimeout(mHttpParams, task.getConnectTimeout());
    HttpConnectionParams.setSoTimeout(mHttpParams, task.getSocketTimeout());
    // 加入代理
    HttpUtils.fillProxy(mContext, mHttpParams);
    mHttpClient = new DefaultHttpClient(mHttpParams);
    // 重试一次
    mHttpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(2, true));
    HttpResponse httpResponse = mHttpClient.execute(task.getHttpUriRequest());

    return httpResponse;
}
项目:pinpoint    文件:DefaultHttpRequestRetryHandlerModifierIT.java   
@Test
public void test() throws Exception {
    DefaultHttpRequestRetryHandler retryHandler = new DefaultHttpRequestRetryHandler();
    IOException iOException = new IOException();
    HttpContext context = new BasicHttpContext();

    assertTrue(retryHandler.retryRequest(iOException, 1, context));
    assertTrue(retryHandler.retryRequest(iOException, 2, context));

    PluginTestVerifier verifier = PluginTestVerifierHolder.getInstance();
    verifier.printCache();

    verifier.verifyTrace(event("HTTP_CLIENT_4_INTERNAL", DefaultHttpRequestRetryHandler.class.getMethod("retryRequest", IOException.class, int.class, HttpContext.class),
            annotation("http.internal.display", IOException.class.getName() + ", 1"), annotation("RETURN_DATA", true)));

    verifier.verifyTrace(event("HTTP_CLIENT_4_INTERNAL", DefaultHttpRequestRetryHandler.class.getMethod("retryRequest", IOException.class, int.class, HttpContext.class),
            annotation("http.internal.display", IOException.class.getName() + ", 2"), annotation("RETURN_DATA", true)));

    verifier.verifyTraceCount(0);
}
项目:red5-server-common    文件:HttpConnectionUtil.java   
/**
 * Returns a client with all our selected properties / params.
 * 
 * @param timeout
 *            - socket timeout to set
 * @return client
 */
public static final HttpClient getClient(int timeout) {
    HttpClientBuilder client = HttpClientBuilder.create();
    // set the connection manager
    client.setConnectionManager(connectionManager);
    // dont retry
    client.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    // establish a connection within x seconds
    RequestConfig config = RequestConfig.custom().setSocketTimeout(timeout).build();
    client.setDefaultRequestConfig(config);
    // no redirects
    client.disableRedirectHandling();
    // set custom ua
    client.setUserAgent(userAgent);
    // set the proxy if the user has one set
    if ((System.getProperty("http.proxyHost") != null) && (System.getProperty("http.proxyPort") != null)) {
        HttpHost proxy = new HttpHost(System.getProperty("http.proxyHost").toString(), Integer.valueOf(System.getProperty("http.proxyPort")));
        client.setProxy(proxy);
    }
    return client.build();
}
项目:red5-server-common    文件:HttpConnectionUtil.java   
/**
 * Returns a client with all our selected properties / params and SSL enabled.
 * 
 * @return client
 */
public static final HttpClient getSecureClient() {
    HttpClientBuilder client = HttpClientBuilder.create();
    // set the ssl verifier to accept all
    client.setSSLHostnameVerifier(new NoopHostnameVerifier());
    // set the connection manager
    client.setConnectionManager(connectionManager);
    // dont retry
    client.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    // establish a connection within x seconds
    RequestConfig config = RequestConfig.custom().setSocketTimeout(connectionTimeout).build();
    client.setDefaultRequestConfig(config);
    // no redirects
    client.disableRedirectHandling();
    // set custom ua
    client.setUserAgent(userAgent);
    return client.build();
}
项目:read-open-source-code    文件:HttpClientUtil.java   
/**
 * Control retry handler 
 * @param useRetry when false the client will not try to retry failed requests.
 */
public static void setUseRetry(final DefaultHttpClient httpClient,
    boolean useRetry) {
  if (!useRetry) {
    httpClient.setHttpRequestRetryHandler(NO_RETRY);
  } else {
    // if the request is not fully sent, we retry
    // streaming updates are not a problem, because they are not retryable
    httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(){
      @Override
      protected boolean handleAsIdempotent(final HttpRequest request) {
        return false; // we can't tell if a Solr request is idempotent
      }
    });
  }
}
项目:opennmszh    文件:RequestTracker.java   
public synchronized HttpClient getClient() {
    if (m_client == null) {
        m_client = new DefaultHttpClient();

        HttpParams clientParams = m_client.getParams();
        clientParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, m_timeout);
        clientParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, m_timeout);
        clientParams.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
        m_client.setParams(clientParams);

        m_client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(m_retries, false));

    }

    return m_client;
}
项目:basis    文件:HttpUtil.java   
/**
 * Internal function to create http clients for fetching
 * @param timeoutms The timeout, which is applied to the connect, connection request, and socket timeouts. Ignored if <=0
 * @param numRetries The number of retries. Ignored if <0
 * @param credentials optional credentials provider to be used for authentication
 * @return A CloseableHttpClient with the specified parameters set
 */
private static CloseableHttpClient makeCloseableHttpClient(int timeoutms, int numRetries, Optional<CredentialsProvider> credentials) {
    HttpClientBuilder builder = HttpClientBuilder.create();
    if(credentials.isPresent()) { builder.setDefaultCredentialsProvider(credentials.get()); }
    if (numRetries >= 0) {
        DefaultHttpRequestRetryHandler retryHandler =
                new DefaultHttpRequestRetryHandler(numRetries, false);
        builder = builder.setRetryHandler(retryHandler);
    }
    if (timeoutms > 0) {
        RequestConfig config = RequestConfig.custom()
                .setConnectTimeout(timeoutms)
                .setConnectionRequestTimeout(timeoutms)
                .setSocketTimeout(timeoutms).build();
        builder.setDefaultRequestConfig(config);
    }
    return builder.build();
}
项目:OpenNMS    文件:RequestTracker.java   
public synchronized HttpClient getClient() {
    if (m_client == null) {
        m_client = new DefaultHttpClient();

        HttpParams clientParams = m_client.getParams();
        clientParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, m_timeout);
        clientParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, m_timeout);
        clientParams.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
        m_client.setParams(clientParams);

        m_client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(m_retries, false));

    }

    return m_client;
}
项目:voldemort    文件:HttpStoreClientFactory.java   
public HttpStoreClientFactory(ClientConfig config) {
    super(config);
    ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager(SchemeRegistryFactory.createDefault(),
                                                                      config.getConnectionTimeout(TimeUnit.MILLISECONDS),
                                                                      TimeUnit.MILLISECONDS);
    mgr.setMaxTotal(config.getMaxTotalConnections());
    mgr.setDefaultMaxPerRoute(config.getMaxConnectionsPerNode());

    this.httpClient = new DefaultHttpClient(mgr);
    HttpParams clientParams = this.httpClient.getParams();

    HttpProtocolParams.setUserAgent(clientParams, VOLDEMORT_USER_AGENT);
    HttpProtocolParams.setVersion(clientParams, HttpVersion.HTTP_1_1);

    HttpConnectionParams.setConnectionTimeout(clientParams,
                                              config.getConnectionTimeout(TimeUnit.MILLISECONDS));
    HttpConnectionParams.setSoTimeout(clientParams,
                                      config.getSocketTimeout(TimeUnit.MILLISECONDS));
    HttpConnectionParams.setStaleCheckingEnabled(clientParams, false);

    this.httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    HttpClientParams.setCookiePolicy(clientParams, CookiePolicy.IGNORE_COOKIES);

    this.reroute = config.getRoutingTier().equals(RoutingTier.SERVER);
    this.requestFormatFactory = new RequestFormatFactory();
}
项目:red5-mobileconsole    文件:HttpConnectionUtil.java   
/**
 * Returns a client with all our selected properties / params.
 * 
 * @return client
 */
public static final DefaultHttpClient getClient() {
    // create a singular HttpClient object
    DefaultHttpClient client = new DefaultHttpClient(connectionManager);
    // dont retry
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    // get the params for the client
    HttpParams params = client.getParams();
    // establish a connection within x seconds
    params.setParameter(CoreConnectionPNames.SO_TIMEOUT, connectionTimeout);
    // no redirects
    params.setParameter(ClientPNames.HANDLE_REDIRECTS, false);
    // set custom ua
    params.setParameter(CoreProtocolPNames.USER_AGENT, userAgent);
    // set the proxy if the user has one set
    if ((System.getProperty("http.proxyHost") != null) && (System.getProperty("http.proxyPort") != null)) {
           HttpHost proxy = new HttpHost(System.getProperty("http.proxyHost").toString(), Integer.valueOf(System.getProperty("http.proxyPort")));
           client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }
    return client;
}
项目:TITAN    文件:HttpConnectionManager.java   
private CloseableHttpClient getConnection() {
    CloseableHttpClient httpClient = HttpClients.custom()
            /* 设置连接池管理 */
            .setConnectionManager(poolConnManager)
            /* 设置请求配置 */
            .setDefaultRequestConfig(requestConfig)
            /* 设置重试次数 */
            .setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)).build();
    if (poolConnManager != null && poolConnManager.getTotalStats() != null) {
        log.info("now client pool " + poolConnManager.getTotalStats().toString());
    }
    return httpClient;
}
项目:admin-shiro    文件:RestTemplateConfig.java   
/**
 * springboot初始化restTemplate
 */
@Bean
public RestTemplate initRestTemplate() {
    // 长连接保持30秒
    PoolingHttpClientConnectionManager pollingConnectionManager = new PoolingHttpClientConnectionManager(30, TimeUnit.SECONDS);
    // 总连接数
    pollingConnectionManager.setMaxTotal(1000);
    // 同路由的并发数
    pollingConnectionManager.setDefaultMaxPerRoute(1000);

    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    httpClientBuilder.setConnectionManager(pollingConnectionManager);
    // 重试次数,默认是3次,没有开启
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(2, true));
    // 保持长连接配置,需要在头添加Keep-Alive
    httpClientBuilder.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy());

    RequestConfig.Builder builder = RequestConfig.custom();
    builder.setConnectionRequestTimeout(200);
    builder.setConnectTimeout(5000);
    builder.setSocketTimeout(5000);

    RequestConfig requestConfig = builder.build();
    httpClientBuilder.setDefaultRequestConfig(requestConfig);

    List<Header> headers = new ArrayList<>();
    headers.add(new BasicHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36"));
    headers.add(new BasicHeader("Accept-Encoding", "gzip,deflate"));
    headers.add(new BasicHeader("Accept-Language", "zh-CN"));
    headers.add(new BasicHeader("Connection", "Keep-Alive"));

    httpClientBuilder.setDefaultHeaders(headers);

    HttpClient httpClient = httpClientBuilder.build();

    // httpClient连接配置,底层是配置RequestConfig
    HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
    // 连接超时
    clientHttpRequestFactory.setConnectTimeout(5000);
    // 数据读取超时时间,即SocketTimeout
    clientHttpRequestFactory.setReadTimeout(5000);
    // 连接不够用的等待时间,不宜过长,必须设置,比如连接不够用时,时间过长将是灾难性的
    clientHttpRequestFactory.setConnectionRequestTimeout(200);
    // 缓冲请求数据,默认值是true。通过POST或者PUT大量发送数据时,建议将此属性更改为false,以免耗尽内存。
    clientHttpRequestFactory.setBufferRequestBody(false);

    // 添加内容转换器
    List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
    messageConverters.add(initStringHttpMessageConverter());
    messageConverters.add(new FormHttpMessageConverter());
    messageConverters.add(new MappingJackson2XmlHttpMessageConverter());
    messageConverters.add(new MappingJackson2HttpMessageConverter());

    RestTemplate restTemplate = new RestTemplate(messageConverters);
    restTemplate.setRequestFactory(clientHttpRequestFactory);
    restTemplate.setErrorHandler(new DefaultResponseErrorHandler());
    return restTemplate;

}
项目:aos-MediaLib    文件:NetworkResourceLoader.java   
/**
 * Create a thread-safe client. This client does not do redirecting, to allow us to capture
 * correct "error" codes.
 *
 * @return HttpClient
 */
public final DefaultHttpClient createHttpClient() {
    HttpParams params = new BasicHttpParams();
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);  
    HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);  
    HttpProtocolParams.setUseExpectContinue(params, true);  
    // Turn off stale checking. Our connections break all the time anyway,
    // and it's not worth it to pay the penalty of checking every time.
    HttpConnectionParams.setStaleCheckingEnabled(params, false);

    // Default connection and socket timeout of 30 seconds. Tweak to taste.
    HttpConnectionParams.setConnectionTimeout(params, 10*1000);
    HttpConnectionParams.setSoTimeout(params, 20*1000);
    HttpConnectionParams.setSocketBufferSize(params, 8192);

    ConnManagerParams.setTimeout(params, 5 * 1000);
    ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(50));
    ConnManagerParams.setMaxTotalConnections(params, 200);

    // Sets up the http part of the service.
    final SchemeRegistry supportedSchemes = new SchemeRegistry();

    // Register the "http" protocol scheme, it is required
    // by the default operator to look up socket factories.
    final SocketFactory sf = PlainSocketFactory.getSocketFactory();
    supportedSchemes.register(new Scheme("http", sf, 80));
    supportedSchemes.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));  
    final ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(params,
            supportedSchemes);

    DefaultHttpClient httpClient = new DefaultHttpClient(ccm, params);

    httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(3, true));

    return httpClient;
}
项目:javabase    文件:GetClient.java   
/**
 * 多线程的httpclinet
 * @return
 */
private CloseableHttpClient getThredHttpClient() {
    //单线程跑是基本看不出配置了连接池的好处的,只有使用多线程爬取数据的时候,并且数据量越大效果越明显
    PoolingHttpClientConnectionManager conMgr = new PoolingHttpClientConnectionManager();
    conMgr.setMaxTotal(200); // 设置整个连接池最大连接数 根据自己的场景决定
    // 是路由的默认最大连接(该值默认为2),限制数量实际使用DefaultMaxPerRoute并非MaxTotal。
    // 设置过小无法支持大并发(ConnectionPoolTimeoutException: Timeout waiting for connection from pool),路由是对maxTotal的细分。
    conMgr.setDefaultMaxPerRoute(conMgr.getMaxTotal());// (目前只有一个路由,因此让他等于最大值)
    //另外设置http client的重试次数,默认是3次;当前是禁用掉(如果项目量不到,这个默认即可)
    CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(conMgr).
            setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)).build();
    // 另外设置http client的重试次数,默认是3次;当前是禁用掉(如果项目量不到,这个默认即可)
    RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(15000).setConnectTimeout(15000).setConnectionRequestTimeout(15000).setStaleConnectionCheckEnabled(true).build();
    return httpClient;
}
项目:flowable-engine    文件:CmmnHttpActivityBehaviorImpl.java   
public CmmnHttpActivityBehaviorImpl() {
    org.flowable.cmmn.engine.HttpClientConfig config = CommandContextUtil.getCmmnEngineConfiguration().getHttpClientConfig();
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();

    // https settings
    if (config.isDisableCertVerify()) {
        try {
            SSLContextBuilder builder = new SSLContextBuilder();
            builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
            httpClientBuilder.setSSLSocketFactory(
                    new SSLConnectionSocketFactory(builder.build(), new HostnameVerifier() {
                        @Override
                        public boolean verify(String s, SSLSession sslSession) {
                            return true;
                        }
                    }));

        } catch (Exception e) {
            LOGGER.error("Could not configure HTTP client SSL self signed strategy", e);
        }
    }

    // request retry settings
    int retryCount = 0;
    if (config.getRequestRetryLimit() > 0) {
        retryCount = config.getRequestRetryLimit();
    }
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(retryCount, false));

    this.httpActivityExecutor = new HttpActivityExecutor(httpClientBuilder, new NopErrorPropagator());
}
项目:flowable-engine    文件:HttpActivityBehaviorImpl.java   
public HttpActivityBehaviorImpl() {
    HttpClientConfig config = CommandContextUtil.getProcessEngineConfiguration().getHttpClientConfig();
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();

    // https settings
    if (config.isDisableCertVerify()) {
        try {
            SSLContextBuilder builder = new SSLContextBuilder();
            builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
            httpClientBuilder.setSSLSocketFactory(
                    new SSLConnectionSocketFactory(builder.build(), new HostnameVerifier() {
                        @Override
                        public boolean verify(String s, SSLSession sslSession) {
                            return true;
                        }
                    }));

        } catch (Exception e) {
            LOGGER.error("Could not configure HTTP client SSL self signed strategy", e);
        }
    }

    // request retry settings
    int retryCount = 0;
    if (config.getRequestRetryLimit() > 0) {
        retryCount = config.getRequestRetryLimit();
    }
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(retryCount, false));

    this.httpActivityExecutor = new HttpActivityExecutor(httpClientBuilder, new ProcessErrorPropagator());
}
项目:nomad-java-sdk    文件:NomadApiClient.java   
private CloseableHttpClient buildHttpClient(NomadApiConfiguration config) {

        return HttpClientBuilder.create()
                .setRetryHandler(new DefaultHttpRequestRetryHandler() {
                    @Override
                    protected boolean handleAsIdempotent(HttpRequest request) {
                        return true;
                    }
                })
                .setSSLContext(buildSslContext(config.getTls()))
                .setSSLHostnameVerifier(new NomadHostnameVerifier())
                .build();
    }
项目:validatar    文件:JSON.java   
/**
 * Creates a HttpClient to use for making requests.
 *
 * @param metadata The map containing the configuration for this client.
 * @return The created HttpClient object.
 */
private HttpClient createClient(Map<String, String> metadata) {
    int timeout = Integer.valueOf(metadata.getOrDefault(METADATA_TIMEOUT_KEY, String.valueOf(defaultTimeout)));
    int retries = Integer.valueOf(metadata.getOrDefault(METADATA_RETRY_KEY, String.valueOf(defaultRetries)));
    RequestConfig config = RequestConfig.custom().setConnectTimeout(timeout)
                                                 .setConnectionRequestTimeout(timeout)
                                                 .setSocketTimeout(timeout).build();
    return HttpClientBuilder.create()
                            .setDefaultRequestConfig(config)
                            .setRetryHandler(new DefaultHttpRequestRetryHandler(retries, false))
                            .build();
}
项目:groovejames    文件:HttpClientService.java   
private CloseableHttpClient createHttpClient(ProxySettings proxySettings) {
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create()
            /* set user agent string */
            .setUserAgent(USER_AGENT)
            /* redirect on POSTs, too */
            .setRedirectStrategy(new LaxRedirectStrategy())
            /* increase max total connections from 20 to 200 */
            .setMaxConnTotal(200)
            /* increate max connections per route from 2 to 200 (we only have one route) */
            .setMaxConnPerRoute(200)
            /* set retry handler with maximum 3 retries and requestSentRetryEnabled=true so that even POST requests are retried (default is false) */
            .setRetryHandler(new DefaultHttpRequestRetryHandler(3, true))
            .setDefaultCookieStore(cookieStore)
            .setDefaultRequestConfig(RequestConfig.custom()
                    /* timeout in milliseconds until a connection is established, in ms */
                    .setConnectTimeout(SOCKET_TIMEOUT * 1000)
                    /* socket timeout in milliseconds, which is the timeout for waiting for data */
                    .setSocketTimeout(SOCKET_TIMEOUT * 1000)
                    /* don't use "Expect: 100-continue" because some proxies don't understand */
                    .setExpectContinueEnabled(false)
                    /* need to relax default cookie policy to avoid problem with cookies with invalid expiry dates */
                    .setCookieSpec(CookieSpecs.BROWSER_COMPATIBILITY)
                    .build());
    if (proxySettings != null) {
        httpClientBuilder.setProxy(new HttpHost(proxySettings.getHost(), proxySettings.getPort()));
    }
    return httpClientBuilder.build();
}
项目:kc-rice    文件:DefaultHttpClientConfigurer.java   
/**
 * Builds the retry handler if {@link #RETRY_SOCKET_EXCEPTION_PROPERTY} is true in the project's configuration.
 *
 * @return the HttpRequestRetryHandler or null depending on configuration
 */
protected HttpRequestRetryHandler buildRetryHandler() {
    // If configured to do so, allow the client to retry once
    if (ConfigContext.getCurrentContextConfig().getBooleanProperty(RETRY_SOCKET_EXCEPTION_PROPERTY, false)) {
        return new DefaultHttpRequestRetryHandler(1, true);
    }

    return null;
}
项目:zongtui-webcrawler    文件:HttpClientGenerator.java   
private CloseableHttpClient generateClient(Site site) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom().setConnectionManager(connectionManager);
    if (site != null && site.getUserAgent() != null) {
        httpClientBuilder.setUserAgent(site.getUserAgent());
    } else {
        httpClientBuilder.setUserAgent("");
    }
    if (site == null || site.isUseGzip()) {
        httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() {

            public void process(
                    final HttpRequest request,
                    final HttpContext context) throws HttpException, IOException {
                if (!request.containsHeader("Accept-Encoding")) {
                    request.addHeader("Accept-Encoding", "gzip");
                }

            }
        });
    }
    SocketConfig socketConfig = SocketConfig.custom().setSoKeepAlive(true).setTcpNoDelay(true).build();
    httpClientBuilder.setDefaultSocketConfig(socketConfig);
    if (site != null) {
        httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true));
    }
    generateCookie(httpClientBuilder, site);
    return httpClientBuilder.build();
}
项目:artifactory    文件:HttpClientConfigurator.java   
/**
 * Number of retry attempts. Default is 3 retries.
 *
 * @param retryCount Number of retry attempts. 0 means no retries.
 */
public HttpClientConfigurator retry(int retryCount, boolean requestSentRetryEnabled) {
    if (retryCount == 0) {
        builder.disableAutomaticRetries();
    } else {
        builder.setRetryHandler(new DefaultHttpRequestRetryHandler(retryCount, requestSentRetryEnabled));
    }
    return this;
}
项目:DroidDLNA    文件:StreamClientImpl.java   
public StreamClientImpl(StreamClientConfigurationImpl configuration) throws InitializationException {
    this.configuration = configuration;

    HttpProtocolParams.setContentCharset(globalParams, getConfiguration().getContentCharset());
    HttpProtocolParams.setUseExpectContinue(globalParams, false);

    // These are some safety settings, we should never run into these timeouts as we
    // do our own expiration checking
    HttpConnectionParams.setConnectionTimeout(globalParams, (getConfiguration().getTimeoutSeconds()+5) * 1000);
    HttpConnectionParams.setSoTimeout(globalParams, (getConfiguration().getTimeoutSeconds()+5) * 1000);

    HttpConnectionParams.setStaleCheckingEnabled(globalParams, getConfiguration().getStaleCheckingEnabled());
    if (getConfiguration().getSocketBufferSize() != -1)
        HttpConnectionParams.setSocketBufferSize(globalParams, getConfiguration().getSocketBufferSize());

    // Only register 80, not 443 and SSL
    SchemeRegistry registry = new SchemeRegistry();
    registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));

    clientConnectionManager = new PoolingClientConnectionManager(registry);
    clientConnectionManager.setMaxTotal(getConfiguration().getMaxTotalConnections());
    clientConnectionManager.setDefaultMaxPerRoute(getConfiguration().getMaxTotalPerRoute());

    httpClient = new DefaultHttpClient(clientConnectionManager, globalParams);
    if (getConfiguration().getRequestRetryCount() != -1) {
        httpClient.setHttpRequestRetryHandler(
            new DefaultHttpRequestRetryHandler(getConfiguration().getRequestRetryCount(), false)
        );
    }
}
项目:openyu-commons    文件:BenchmarkHttpClient4Test.java   
public static HttpClient createHttpClient() {
    HttpClient result = null;
    try {
        // result = HttpClientBuilder.create().build();
        // result = HttpClients.createDefault();

        // HttpClientBuilder
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setMaxConnPerRoute(100);
        builder.setMaxConnTotal(200);
        builder.setRetryHandler(new DefaultHttpRequestRetryHandler());

        // RequestConfig
        RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
        requestConfigBuilder.setConnectTimeout(5 * 1000);
        requestConfigBuilder.setSocketTimeout(5 * 1000);
        //
        RequestConfig requestConfig = requestConfigBuilder.build();
        builder.setDefaultRequestConfig(requestConfig);

        // ConnectionConfig
        ConnectionConfig.Builder connectionConfigBuilder = ConnectionConfig
                .custom();
        connectionConfigBuilder.setBufferSize(8192);
        connectionConfigBuilder.setCharset(Charset.forName("UTF-8"));
        //
        ConnectionConfig connectionConfig = connectionConfigBuilder.build();
        builder.setDefaultConnectionConfig(connectionConfig);
        //
        result = builder.build();

    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return result;
}
项目:apm-agent    文件:DefaultHttpRequestRetryHandlerModifierTest.java   
@Test
public void test() {
    DefaultHttpRequestRetryHandler retryHandler = new DefaultHttpRequestRetryHandler();
    IOException iOException = new IOException();
    HttpContext context = new BasicHttpContext();

    assertTrue(retryHandler.retryRequest(iOException, 1, context));
    assertTrue(retryHandler.retryRequest(iOException, 2, context));
    assertEquals(2, getCurrentSpanEvents().size());
}
项目:corelib    文件:HttpClientInternalImpl.java   
private DefaultHttpClient createHttpClientByte() throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException, UnrecoverableKeyException, KeyManagementException {
    HttpParams httpParams = createHttpParams();
    KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
    trustStore.load(null, null);
    SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
    sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
    SchemeRegistry schReg = new SchemeRegistry();
    schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    schReg.register(new Scheme("https", sf, 443));
    ThreadSafeClientConnManager tccm = new ThreadSafeClientConnManager(httpParams, schReg);

    DefaultHttpClient client = new DefaultHttpClient(tccm, httpParams);
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    return client;
}
项目:corelib    文件:HttpClientInternalImpl.java   
private DefaultHttpClient createHttpClient() throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException, UnrecoverableKeyException, KeyManagementException {
    HttpParams httpParams = createHttpParams();
    KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
    trustStore.load(null, null);
    SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
    sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
    SchemeRegistry schReg = new SchemeRegistry();
    schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    schReg.register(new Scheme("https", sf, 443));
    ClientConnectionManager conManager = new ThreadSafeClientConnManager(httpParams, schReg);

    DefaultHttpClient client = new DefaultHttpClient(conManager, httpParams);
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    return client;
}
项目:dyno    文件:HttpEndpointBasedTokenMapSupplier.java   
private String getResponseViaHttp(String hostname) throws Exception {

    String url = serverUrl;
    url = url.replace("{hostname}", hostname);

    if (Logger.isDebugEnabled()) {
        Logger.debug("Making http call to url: " + url);
    }

    DefaultHttpClient client = new DefaultHttpClient();
    client.getParams().setParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 2000);
    client.getParams().setParameter(HttpConnectionParams.SO_TIMEOUT, 5000);

    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(NUM_RETRIER_ACROSS_NODES,
        true);
    client.setHttpRequestRetryHandler(retryhandler);

    HttpGet get = new HttpGet(url);

    HttpResponse response = client.execute(get);
    int statusCode = response.getStatusLine().getStatusCode();
    if (!(statusCode == 200)) {
        Logger.error("Got non 200 status code from " + url);
        return null;
    }

    InputStream in = null;
    try {
        in = response.getEntity().getContent();
        return IOUtilities.toString(in);
    } finally {
        if (in != null) {
        in.close();
        }
    }
    }
项目:GloboDNS-Client    文件:GloboDns.java   
private static HttpClient newDefaultHttpClient(SSLSocketFactory socketFactory, HttpParams params, ProxySelector proxySelector) {
    SchemeRegistry registry = new SchemeRegistry();
    registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    registry.register(new Scheme("https", socketFactory, 443));
    ClientConnectionManager connectionManager = new ThreadSafeClientConnManager(params, registry);
    DefaultHttpClient httpClient = new DefaultHttpClient(connectionManager, params);
    httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    httpClient.setRoutePlanner(new ProxySelectorRoutePlanner(registry, proxySelector));
    return httpClient;
}
项目:data-prep    文件:HttpClient.java   
/**
 * @param connectionManager the connection manager.
 * @return the http client to use backed by a pooling connection manager.
 */
@Bean(destroyMethod = "close")
public CloseableHttpClient getHttpClient(PoolingHttpClientConnectionManager connectionManager) {
    return HttpClientBuilder.create() //
            .setConnectionManager(connectionManager) //
            .setKeepAliveStrategy(getKeepAliveStrategy()) //
            .setDefaultRequestConfig(getRequestConfig()) //
            .setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)) //
            .setRedirectStrategy(new RedirectTransferStrategy()) //
            .build();
}
项目:NYBC    文件:HttpClientUtil.java   
/**
 * Control retry handler 
 * @param useRetry when false the client will not try to retry failed requests.
 */
public static void setUseRetry(final DefaultHttpClient httpClient,
    boolean useRetry) {
  if (!useRetry) {
    httpClient.setHttpRequestRetryHandler(NO_RETRY);
  } else {
    httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler());
  }
}
项目:SexyBelle    文件:HttpClientImpl.java   
private DefaultHttpClient createHttpClientByte() {
    final SchemeRegistry supportedSchemes = new SchemeRegistry();
    supportedSchemes.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), HTTP_PORT));
    supportedSchemes.register(new Scheme("https", EasySSLSocketFactory.getSocketFactory(), 443));
    final HttpParams httpParams = createHttpParams();
    final ThreadSafeClientConnManager tccm = new ThreadSafeClientConnManager(httpParams, supportedSchemes);
    DefaultHttpClient client = new DefaultHttpClient(tccm, httpParams);
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    return client;
}
项目:SexyBelle    文件:HttpClientImpl.java   
private DefaultHttpClient createHttpClient() {
    final SchemeRegistry supportedSchemes = new SchemeRegistry();
    supportedSchemes.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    supportedSchemes.register(new Scheme("https", EasySSLSocketFactory.getSocketFactory(), 443));
    final HttpParams httpParams = createHttpParams();
    final ThreadSafeClientConnManager tccm = new ThreadSafeClientConnManager(httpParams, supportedSchemes);
    DefaultHttpClient client = new DefaultHttpClient(tccm, httpParams);
    client.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
    return client;
}