如今的應用大部分基予網路,在開源中國ios客戶端原始碼中關於網路通訊方面用了三個類庫,asi和afnetworking,還有乙個蘋果官方給出的reachability用於檢測當前網路狀況,本文介紹當前用的比較多的asi類庫;
asihttprequest簡稱asi,它是對cfnetwork api進行封裝,使在與web伺服器通訊時的繁瑣步驟變得容易一些。它是使用objective-c 編寫,能夠很好的用在mac os x和iphone應用程式中;它適用於執行基本的http請求和互動基於 rest的服務(get / post / put /delete)互交。
關於asi類庫介紹在
新增asi到你工程中步驟 setup-instructions
asi特點
l通過簡單的介面,即可完成向服務端提交資料和從服務端獲取資料的工作
l能上傳本地檔案到服務端
l可以方便的訪問和操作請求和返回的http頭資訊
l支援基本、摘要和ntlm身份認證,在同一會話中授權憑證會自動維持,並且可以儲存在keychain(mac和ios操作 系統的密碼管理系統)中
l 支援cookie
l當應用(ios
4+)在後台執行時,請求可以繼續執行
l 支援gzip壓縮資料
l內建的asidownloadcache類,可以快取請求返回的資料,這樣即使沒有網路也可以返回已經快取的資料結果
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,
這些檔案作用在開發文件中都有詳細介紹.
在how-to-use有關於初次接觸asi的簡單使用,很有必要看一看,
了解簡單的同步請求、非同步請求,block塊請求,佇列請求等其他用法。
用asi寫的乙個簡單請求資料的demo:
測試使用的url是國家氣象局api,返回乙個json資料
//同步請求
- (ibaction)synchronization_bt:(id)sender
} }
//非同步請求
- (ibaction)asynchronous_bt:(id)sender
//非同步請求delegate methods
//block塊請求
- (ibaction)blocks_tn:(id)sender ];
[request setfailedblock:^];
[request startasynchronous];
}
//佇列請求
將類庫加入到工程中不要忘了新增支援的framework框架和庫:
systemconfiguration.framework, mobilecoreservices.framework, coregraphics.framework 和 libz.dylib.
源**:
iOS網路通訊類庫
ios網路通訊類庫 asihttprequest,afnetworking,mknetworkkit.asihttprequest在ios5.0之後就不在維護了,所以之後主要就是afnetworking和mknetworkkit。afnetworking 適合邏輯簡單的應用,或者更適合開發資源尚不豐...
七 網路通訊 面試
1.http是無狀態通訊,http的請求方式有哪些,可以自己定義新的請求方式麼。2.socket通訊,以及長連線,分包,連線異常斷開的處理。3.socket通訊模型的使用,aio和nio。4.socket框架netty的使用,以及nio的實現原理,為什麼是非同步非阻塞。5.同步和非同步,阻塞和非阻塞...
Python學習筆記 六 網路通訊
import requests myparameter r requests.get myparameter print r.contentform裡沒有資料了,都在data裡 import requests import json mydata r requests.post data json....