如今的應用大部分基予網路,在開源中國iOS用戶端源碼中關於網路通訊方面用了三個類庫,ASI和AFNetworking,還有一個蘋果官方給出的Reachability用於檢測當前網路狀況,本文介紹當前用的比較多的ASI類庫;
ASIHTTPRequest簡稱ASI,它是對CFNetwork API進行封裝,使在與web伺服器通訊時的繁瑣步驟變得容易一些。它是使用Objective-C 編寫,能夠很好的用在Mac OS X和iPhone應用程式中;它適用於執行基本的HTTP請求和互動基於 REST的服務(GET / POST / PUT /DELETE)互交。
ASIHTTPRequest下載 https://github.com/pokeb/asi-http-request/tree
關於ASI類庫介紹在 http://allseeing-i.com/ASIHTTPRequest/
添加ASI到你工程中步驟 http://allseeing-i.com/ASIHTTPRequest/Setup-instructions
ASI特點
l通過簡單的介面,即可完成向服務端提交資料和從服務端擷取資料的工作
l下載的資料,可儲存到記憶體中或直接儲存到磁碟中
l能上傳本地檔案到服務端
l可以方便的訪問和操作請求和返回的Http頭資訊
l可以擷取到上傳或下載的進度資訊,為應用程式提供更好的體驗
l支援上傳或下載隊列,並且可擷取隊列的進度資訊
l支援基本、摘要和NTLM身份認證,在同一會話中授權憑證會自動維持,並且可以儲存在Keychain(Mac和iOS操作 系統的密碼管理系統)中
l 支援Cookie
l當應用(iOS4+)在後台運行時,請求可以繼續運行
l 支援GZIP壓縮資料
l內建的ASIDownloadCache類,可以緩衝請求返回的資料,這樣即使沒有網路也可以返回已經緩衝的資料結果
l ASIWebPageRequest –可以下載完整的網頁,包括包含的網頁、樣式表、指令碼等資源檔,並顯示在UIWebView /WebView中。任意大小的頁面都可以無限期緩衝,這樣即使沒有網路也可以離線瀏覽
l支援用戶端認證
l支援通過代理髮起Http請求
l支援頻寬節流設定。在iOS平台,可以根據當前網路情況來自動決定是否限制頻寬,例如當使 用WWAN(GPRS/Edge/3G)網路時限制,而當使用WIFI時不做任何限制
l支援斷點續傳
l支援同步和非同步請
ASI類庫裡包括22個檔案,4個主要的類ASIHTTPRequest 、ASIFormDataRequest、ASINetworkQueue、ASIDownloadCache,5個支援的類ASIInputStream、ASIDataDecompressor、ASIDataCompressor、ASIAuthenticationDialog、Reachability,4個協議設定檔ASIHTTPRequestDelegate、ASIProgressDelegate、ASICacheDelegate、ASIHTTPRequestConfig.h,這些檔案作用在開發文檔中都有詳細介紹.
在http://allseeing-i.com/ASIHTTPRequest/How-to-use有關於初次接觸ASI的簡單使用,很有必要看一看,
瞭解簡單的同步請求、非同步請求,block塊請求,隊列請求等其他用法。