List of usage examples for org.apache.http.impl.client AutoRetryHttpClient AutoRetryHttpClient
public AutoRetryHttpClient(final HttpClient client)
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); }