zoukankan      html  css  js  c++  java
  • Android网络连接的两种方法:apache client和httpurlconnection的比较 分类: H1_ANDROID 2013-10-13 23:23 640人阅读 评论(0) 收藏

    另见http://blog.csdn.net/mingli198611/article/details/8766585

    在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题: 
      原文见http://android-developers.blogspot.com/2011/09/androids-http-clients.html 
    这里小结下几点。 

    1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点, 
    所以android team现在不鸟这东西了基本 

    2) httpurlconnection比较轻便,灵活,易于扩展,在2。2前有个BUG, 
    见http://code.google.com/p/android/issues/detail?id=2939 
      可以通过如下代码去解决: 
     
    Java代码  收藏代码
    1. private void disableConnectionReuseIfNecessary() {    
    2.   // HTTP connection reuse which was buggy pre-froyo     
    3.  if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {        System.setProperty("http.keepAlive""false");     
    4.  }  
    5. }  

    3) 在Gingerbread中,httpurlconnection会增加对压缩报文头的处理,服务端可以用 
    GZIP,详细见: 
      http://developer.android.com/reference/java/net/HttpURLConnection.html 

    4) 对HTTPURLCONECTION中,在3。0后以及4。0中都进行了改善,比如对HTTPS的支持, 
    在4。0中,还增加了对缓存的支持呢!比如下面的代码: 
    Java代码  收藏代码
    1. private void enableHttpResponseCache()   
    2. {    
    3.   try {  
    4.         long httpCacheSize = 10 * 1024 * 1024// 10 MiB      
    5.     File httpCacheDir = new File(getCacheDir(), "http");      
    6.     Class.forName("android.net.http.HttpResponseCache").getMethod("install", File.classlong.class.invoke(null, httpCacheDir, httpCacheSize);     
    7.  }   
    8. catch   
    9. (Exception httpResponseCacheNotAvailable) {    
    10.   }  
    11. }  


      最后的建议,Gingerbread后的版本,都建议用httpurlconnection,获得更高的性能



    另有文章:

    以下是官方原文(地址:http://developer.android.com/training/basics/network-ops/connecting.html

    ---------------原文-------------------------

    Most network-connected Android apps use HTTP to send and receive data. Android includes two HTTP clients: HttpURLConnection and Apache HttpClient. Both support HTTPS, streaming uploads and downloads, configurable timeouts, IPv6, and connection pooling. We recommend using HttpURLConnection for applications targeted at Gingerbread and higher. For more discussion of this topic, see the blog post Android's HTTP Clients.



    欢迎转载,请注明来自: www.lujinhong.com www.cnblogs.com/lujinhong2
  • 相关阅读:
    http协议学习系列
    git常用命令大全
    git常用命令与常见面试题总结
    MyBatis框架及原理分析
    Mybatis常见面试题总结
    java实现克隆的三种(很最全面)
    java中equals和==之间的区别?clone方法的作用,及其为什么要使用clone方法?如何使用clone复制对象?以及深克隆浅克隆
    ThreadLocal的简单使用及实现的原理
    Java 最常见的 208 道面试题
    TCP流量控制
  • 原文地址:https://www.cnblogs.com/lujinhong2/p/4637382.html
Copyright © 2011-2022 走看看