类org.apache.http.impl.client.DefaultBackoffStrategy源码实例Demo

下面列出了怎么用org.apache.http.impl.client.DefaultBackoffStrategy的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: helix   文件: HttpRoutingDataReader.java
/**
 * Makes an HTTP call to fetch all routing data.
 * @return
 * @throws IOException
 */
private static String getAllRoutingData(String msdsEndpoint) throws IOException {
  // Note that MSDS_ENDPOINT should provide high-availability - it risks becoming a single point
  // of failure if it's backed by a single IP address/host
  // Retry count is 3 by default.
  HttpGet requestAllData = new HttpGet(
      msdsEndpoint + MetadataStoreRoutingConstants.MSDS_GET_ALL_ROUTING_DATA_ENDPOINT);

  // Define timeout configs
  RequestConfig config = RequestConfig.custom().setConnectTimeout(HTTP_TIMEOUT_IN_MS)
      .setConnectionRequestTimeout(HTTP_TIMEOUT_IN_MS).setSocketTimeout(HTTP_TIMEOUT_IN_MS)
      .build();

  try (CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(config)
      .setConnectionBackoffStrategy(new DefaultBackoffStrategy())
      .setRetryHandler(new DefaultHttpRequestRetryHandler()).build()) {
    // Return the JSON because try-resources clause closes the CloseableHttpResponse
    HttpEntity entity = httpClient.execute(requestAllData).getEntity();
    if (entity == null) {
      throw new IOException("Response's entity is null!");
    }
    return EntityUtils.toString(entity, "UTF-8");
  }
}
 
源代码2 项目: snowizard   文件: SnowizardClient.java
/**
 * Get a new CloseableHttpClient
 * 
 * @return CloseableHttpClient
 */
public static CloseableHttpClient newHttpClient() {
    final SocketConfig socketConfig = SocketConfig.custom()
            .setSoKeepAlive(Boolean.TRUE).setTcpNoDelay(Boolean.TRUE)
            .setSoTimeout(SOCKET_TIMEOUT_MS).build();

    final PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager();
    manager.setDefaultMaxPerRoute(MAX_HOSTS);
    manager.setMaxTotal(MAX_HOSTS);
    manager.setDefaultSocketConfig(socketConfig);

    final RequestConfig requestConfig = RequestConfig.custom()
            .setConnectTimeout(CONNECTION_TIMEOUT_MS)
            .setCookieSpec(CookieSpecs.IGNORE_COOKIES)
            .setStaleConnectionCheckEnabled(Boolean.FALSE)
            .setSocketTimeout(SOCKET_TIMEOUT_MS).build();

    final CloseableHttpClient client = HttpClients
            .custom()
            .disableRedirectHandling()
            .setConnectionManager(manager)
            .setDefaultRequestConfig(requestConfig)
            .setConnectionReuseStrategy(
                    new DefaultConnectionReuseStrategy())
            .setConnectionBackoffStrategy(new DefaultBackoffStrategy())
            .setRetryHandler(
                    new DefaultHttpRequestRetryHandler(MAX_RETRIES, false))
            .setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy())
            .build();
    return client;
}
 
 类方法
 同包方法