ios學習 五 網路通訊ASI類庫 1

2021-07-02 14:29:07 字數 2624 閱讀 7412

如今的應用大部分基予網路,在開源中國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....