ASIHTTPRequest 簡單實現網路程式設計

2022-08-03 22:45:21 字數 2021 閱讀 7333

使用ios sdk中的http網路請求api,相當的複雜,呼叫比較麻煩,asihttprequest 對cfnetwork api進行了封裝,並且使用起來非常簡單的一套api,在很多比較老舊的專案依然存在,因此大家仍然需要熟悉asi的使用。下面我們一起學習研究一下asi的簡單使用。

一、環境搭建

2、增加框架

二、使用方法

- (void)syncelse 

}

2、傳送非同步get請求,直接呼叫startasynchronous方法即可,非同步和同步稍有不同,使用**接受資料

- (void)async

//開始傳送請求

//失敗的時候呼叫

//接收資料呼叫,如果檔案過大分多次呼叫,此處需要拼接返回的data

//請求結束後解析資料

3、使用塊來實現非同步get請求,因為當面對多個請求的時候採用**的方式稍微顯得有點麻煩,比如在拼接資料的時候需要判斷當前是哪個請求,然後根據請求物件位址來確定採取哪種拼接,所以,在處理多個請求的時候用塊比較有優勢

- (void) asyncformblock];

//開始接收的時候呼叫

[request setdatareceivedblock:^(nsdata *data) ];

//失敗的時候呼叫

[request setfailedblock:^];

}

4、同步post請求的實現,post請求和get不同,這裡需要拼接條件,而且這次用到的類也稍微不同asiformdatarequest,除此之外基本類似。**如下:

asiformdatarequest * request=[asiformdatarequest requestwithurl:url];

//設定請求引數

[request setpostvalue:@"jereh" forkey:@"username"];

[request setpostvalue:@"123" forkey:@"pwd"];

request.timeoutseconds=3;

[request startsynchronous];

5、非同步的post請求我就不用說了吧?相信大家能寫出來

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...