Android之網路訪問(一)android 中對apache httpclient及httpurlconnection的選擇

來源:互聯網
上載者:User

在官方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.class, long.class.invoke(null, httpCacheDir, httpCacheSize);     
  7.  }   
  8. catch   
  9. (Exception httpResponseCacheNotAvailable)&nbsp

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.