码迷,mamicode.com
首页 > 移动开发 > 详细

Android中,HttpURLConnection与Apache的DefaultHttpClient哪个更被推荐使用?

时间:2015-01-19 14:25:16      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:httpurlconnection   defaulthttpclient   

在Android中,请求网络资源的方式包含了:HttpURLConnection和Apache的DefaultHttpClient。那么,这两个方式哪个更被推荐使用呢?Android官方文档为我们推荐HttpURLConnection,而理由是什么呢?

在Android 4.0,为HttpURLConnection增加了一个response cache(响应缓存),这是一个很好的减少http请求次数的机制,Android官方推荐使用HttpURLConnection而不是Apache的DefaultHttpClient的原因就是使用HttpURLConnection不仅有针对android做http请求的优化,而且还在4.0上增加了Reponse Cache,这进一步提高了效率。

我们来看看官方的一个例子:使用反射机制开启HTTP response cache。

private void enableHttpResponseCache() {
  try {
    long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
    File httpCacheDir = new File(getCacheDir(), "http");
    Class.forName("android.net.http.HttpResponseCache")
         .getMethod("install", File.class, long.class)
         .invoke(null, httpCacheDir, httpCacheSize);
  } catch (Exception httpResponseCacheNotAvailable) {
    Log.d(TAG, "HTTP response cache is unavailable.");
  }
}


上面例子,能够在Android 4.0以上的设备上开启response cache,并且不会影响到之前的程序。在cache被开启之后,所有cache中的HTTP请求都可以直接在本地存储中进行响应,当Android需要请求同样的资源时,通过cache,就不需要开启一个新的网络连接去获取资源了,而且被cache起来的response可以被server所确保没有过期,这样可以有效地减少带宽;而没有被cached的response会因方便下次请求而被存储在response cache中。


Android中,HttpURLConnection与Apache的DefaultHttpClient哪个更被推荐使用?

标签:httpurlconnection   defaulthttpclient   

原文地址:http://blog.csdn.net/wuzhipeng1991/article/details/42872403

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!