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

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

Introduction

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

Prototype

public AutoRetryHttpClient(final HttpClient client) 

Source Link

Document

Constructs a AutoRetryHttpClient with default caching settings that stores cache entries in memory and uses the given HttpClient for backend requests.

Usage

From source file:yangqi.hc.AutoRetryClientTest.java

/**
 * @param args/*from ww w  .j a va 2  s  .c o m*/
 * @throws IOException
 * @throws ClientProtocolException
 */
public static void main(String[] args) throws ClientProtocolException, IOException {
    HttpClient client = new AutoRetryHttpClient(new ServiceUnavailableRetryStrategy() {

        private long interval = 1000;

        public boolean retryRequest(HttpResponse response, int executionCount, HttpContext context) {
            System.out.println("excute time is " + executionCount);
            if (executionCount > 4) {
                return false;
            }

            if (response.getStatusLine().getStatusCode() == 200) {
                return true;
            }
            return false;
        }

        public long getRetryInterval() {
            System.out.println("sleep " + interval);
            return interval;
        }
    });

    HttpGet get = new HttpGet("http://www.google.com");

    HttpResponse response = client.execute(get);

    System.out.println(response.getStatusLine());
}

From source file:outfox.dict.contest.util.HttpToolKit.java

/**
 * @param maxConnectPerHost// ww w  . j av a 2 s  .  c  om
 * @param maxConnection
 * @param connectTimeOut
 * @param socketTimeOut
 * @param cookiePolicy
 * @param isAutoRetry
 * @param redirect
 */
public HttpToolKit(int maxConnectPerHost, int maxConnection, int connectTimeOut, int socketTimeOut,
        String cookiePolicy, boolean isAutoRetry, boolean redirect) {
    Scheme https = new Scheme("https", 443, SSLSocketFactory.getSocketFactory());
    Scheme http = new Scheme("http", 80, PlainSocketFactory.getSocketFactory());
    SchemeRegistry sr = new SchemeRegistry();
    sr.register(https);
    sr.register(http);

    connectionManager = new PoolingClientConnectionManager(sr, socketTimeOut, TimeUnit.MILLISECONDS);
    connectionManager.setDefaultMaxPerRoute(maxConnectPerHost);
    connectionManager.setMaxTotal(maxConnection);
    HttpParams params = new BasicHttpParams();
    params.setLongParameter(ClientPNames.CONN_MANAGER_TIMEOUT, connectTimeOut);
    params.setParameter(ClientPNames.COOKIE_POLICY, cookiePolicy);
    params.setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, redirect);
    params.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, false);

    if (isAutoRetry) {
        client = new AutoRetryHttpClient(new DefaultHttpClient(connectionManager, params));
    } else {
        client = new DefaultHttpClient(connectionManager, params);
    }
}

From source file:org.ebayopensource.scc.track.TrackerClient.java

public void start() {
    Runnable thread = new Runnable() {

        /*/*from   w  w w .j  av a 2 s .  c  om*/
         * (non-Javadoc)
         * 
         * @see java.lang.Thread#run()
         */
        @Override
        public void run() {
            Tracker tracker = new Tracker(getUser(), getHostName(), getIp(), getOs(),
                    System.currentTimeMillis(), getInitiator());

            AutoRetryHttpClient client = new AutoRetryHttpClient(
                    new DefaultServiceUnavailableRetryStrategy(3, 3000));
            HttpPost request = createRequest(tracker);
            HttpHost httpHost = createHttpHost();

            try {
                HttpResponse resp = client.execute(httpHost, request);
                int code = resp.getStatusLine().getStatusCode();
                if (HttpResponseStatus.OK.code() == code) {
                    InputStream is = null;
                    try {
                        is = resp.getEntity().getContent();
                        is = new BufferedInputStream(is);
                        InputStreamReader reader = new InputStreamReader(is);
                        JsonStreamParser parser = new JsonStreamParser(reader);
                        while (parser.hasNext()) {
                            JsonElement json = parser.next();
                            LOGGER.debug("Tracking data sent: " + json);
                        }
                    } finally {
                        if (is != null) {
                            is.close();
                        }
                    }

                } else {
                    LOGGER.error(ERROR_FAILED_TO_SEND);
                    LOGGER.debug("Response code: " + code);
                }
            } catch (IOException e) {
                LOGGER.warn(ERROR_FAILED_TO_SEND);
            }
        }

    };

    m_scheduledService.scheduleAtFixedRate(thread, 0, m_interval, TimeUnit.SECONDS);
}