使用ios sdk中的http網路請求api,相當的複雜,呼叫比較麻煩,asihttprequest 對cfnetwork api進行了封裝,並且使用起來非常簡單的一套api,在很多比較老舊的專案依然存在,因此大家仍然需要熟悉asi的使用。下面我們一起學習研究一下asi的簡單使用。
一、環境搭建
2、增加框架
二、使用方法
- (void)syncelse2、傳送非同步get請求,直接呼叫startasynchronous方法即可,非同步和同步稍有不同,使用**接受資料}
- (void)async3、使用塊來實現非同步get請求,因為當面對多個請求的時候採用**的方式稍微顯得有點麻煩,比如在拼接資料的時候需要判斷當前是哪個請求,然後根據請求物件位址來確定採取哪種拼接,所以,在處理多個請求的時候用塊比較有優勢//開始傳送請求
//失敗的時候呼叫
//接收資料呼叫,如果檔案過大分多次呼叫,此處需要拼接返回的data
//請求結束後解析資料
- (void) asyncformblock];4、同步post請求的實現,post請求和get不同,這裡需要拼接條件,而且這次用到的類也稍微不同asiformdatarequest,除此之外基本類似。**如下://開始接收的時候呼叫
[request setdatareceivedblock:^(nsdata *data) ];
//失敗的時候呼叫
[request setfailedblock:^];
}
asiformdatarequest * request=[asiformdatarequest requestwithurl:url];5、非同步的post請求我就不用說了吧?相信大家能寫出來//設定請求引數
[request setpostvalue:@"jereh" forkey:@"username"];
[request setpostvalue:@"123" forkey:@"pwd"];
request.timeoutseconds=3;
[request startsynchronous];
1 直接設定檔案,其他預設[request setfile:path forkey:@"file"];
2 設定檔案,同時設定目的檔名稱和型別
[request setfile:path withfilename:@"asiimg1.png" andcontenttype:@"image/png" forkey:@"file"];
3 設定二進位制檔案,同時設定目的檔名稱和型別
[request setdata:data withfilename:@"t.png" andcontenttype:@"image/png" forkey:@"file"];
ASIHttpRequest 傳送資料
傳送資料 request addrequestheader referer value 檔案中的資料是需要時才從磁碟載入,所以只要web server能處理,那麼上傳大檔案是沒有問題的。asiformdatarequest request asiformdatarequest requestwith...
ASIHTTPRequest 進度追蹤
每個asihttprequest有兩個delegate用來追蹤進度 uploadprogressdelegate 上載 進度delegate可以是nsprogressindicators mac os x 或者 uiprogressviews iphone asihttprequest會自適應這兩個...
ASIHttpRequest 傳送資料
傳送資料 request addrequestheader referer value 檔案中的資料是需要時才從磁碟載入,所以只要web server能處理,那麼上傳大檔案是沒有問題的。asiformdatarequest request asiformdatarequest requestwith...