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

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

Introduction

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

Prototype

public <T> T execute(final HttpUriRequest request, final ResponseHandler<? extends T> responseHandler)
            throws IOException 

Source Link

Usage

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

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

        /*/* w w  w  . j a va 2  s  .com*/
         * (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);
}