首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android开发兑现HttpClient工具类

2012-07-22 
Android开发实现HttpClient工具类在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此

Android开发实现HttpClient工具类
在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过它的API我们可以很方便的发出GET,POST请求(当然它的功能远不止这些)。
  比如你只需以下几行代码就能发出一个简单的GET请求并打印响应结果:

  

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;      }  }


  在上面的getHttpClient()方法中,我们为HttpClient配置了一些基本参数和超时设置,然后使用ThreadSafeClientConnManager来创建线程安全的HttpClient。上面的代码提到了3种超时设置,比较容易搞混,故在此特作辨析。

热点排行