package com.droidworks.http; import org.apache.http.client.HttpClient; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; public class HttpUtils { public static final int TIMEOUT_CONNECT_LONG = 15000; public static final int TIMEOUT_CONNECT = 10000; public static final int TIMEOUT_READ_LONG = 20000; public static final int TIMEOUT_READ = 15000; // this method returns a threadsafe httpClient public static DefaultHttpClient getThreadSafeClient() { DefaultHttpClient client = new DefaultHttpClient(); ClientConnectionManager mgr = client.getConnectionManager(); if (!(mgr instanceof ThreadSafeClientConnManager)) { HttpParams params = client.getParams(); client = new DefaultHttpClient( new ThreadSafeClientConnManager(params, mgr.getSchemeRegistry()), params); } return client; } /** * Set a connection timeout to an HttpClient object. * * @param client * @param seconds */ public static void setConnectionTimeout(HttpClient client, int seconds) { // Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(client.getParams(), seconds * 1000); // Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(client.getParams(), seconds * 1000); } }