转 Android-使用单例模式实现自己的HttpClient工具类

public class CustomerHttpClient { 
    private static final String CHARSET = HTTP.UTF_8; 
    private static HttpClient customerHttpClient; 
  
    private CustomerHttpClient() { 
    } 
  
    public static synchronized HttpClient getHttpClient() { 
        if (null == customerHttpClient) { 
            HttpParams params = new BasicHttpParams(); 
            // 设置一些基本参数  
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); 
            HttpProtocolParams.setContentCharset(params, 
                    CHARSET); 
            HttpProtocolParams.setUseExpectContinue(params, true); 
            HttpProtocolParams 
                    .setUserAgent( 
                            params, 
                            "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83) " 
                                    + "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1"); 
            // 超时设置  
            /* 从连接池中取连接的超时时间 */ 
            ConnManagerParams.setTimeout(params, 1000); 
            /* 连接超时 */ 
            HttpConnectionParams.setConnectionTimeout(params, 2000); 
            /* 请求超时 */ 
            HttpConnectionParams.setSoTimeout(params, 4000); 
  
            // 设置我们的HttpClient支持HTTP和HTTPS两种模式  
            SchemeRegistry schReg = new SchemeRegistry(); 
            schReg.register(new Scheme("http", PlainSocketFactory 
                    .getSocketFactory(), 80)); 
            schReg.register(new Scheme("https", SSLSocketFactory 
                    .getSocketFactory(), 443)); 
  
            // 使用线程安全的连接管理来创建HttpClient  
            ClientConnectionManager conMgr = new ThreadSafeClientConnManager( 
                    params, schReg); 
            customerHttpClient = new DefaultHttpClient(conMgr, params); 
        } 
        return customerHttpClient; 
    } 

原文链接:http://www.cnblogs.com/codingmyworld/archive/2011/08/17/2141706.html

猜你喜欢

转载自zjingye.iteye.com/blog/1879303
今日推荐