ASIHttprequest的一些文件

2021-06-19 13:02:10 字數 1194 閱讀 8130

一、取消非同步請求

有兩種方法發起非同步請求:[request startasynchronous]或者把request放入佇列(包括nsoperationqueue和asinetworkqueue)。要想取消請求,則使用[request cancel]。需要注意,synchronous請求不可取消。

取消一次請求,request就視為請求erro,會呼叫你給與其或者佇列的delegate函式。如果你想避免這種呼叫,就在取消前把delegate的值置nil;也可以使用cleardelegatesandcancel方法。如下:

// cancels an asynchronous request

[request cancel]

// cancels an asynchronous request, clearing all delegates and blocks first

[request cleardelegatesandcancel];

在使用asinetworkqueue的時候,當cancel乙個請求,佇列裡面其他的請求都將被取消。通過

shouldcancelallrequestsonfailure可以控制這個效果。預設是yes。

/ when a request in this queue fails or is cancelled, other requests will continue to run

[queue setshouldcancelallrequestsonfailure:no];

// cancel all requests in a queue

[queue cancelalloperations];

二、

在請求完成前,要安全的處理delegate釋放的情況

request的delegate屬於弱引用,所以,如果要想在request進行中釋放delegate,那麼清理request的delegate屬性就變得至關重要。大多數情況下,如果delegagte將要被釋放,那麼你也會取消request,因為request的發起者已經釋放,那麼就不需要關心request的狀態了。

下面的例子,我們的控制器保留了asihttprequest的變數,我們在控制器的delloc方法內部呼叫cleardelegatesandcancel這個方法,在控制器釋放前清理request的delegate並且取消request。

ASIHTTPRequest庫的新增

b.把classes裡的檔案,拖到xcode中 c.匯入框架 systemconfiguration.framework mobilecoreservices.framework coregraphics.framework cfnetwork.framework libz.1.2.3.dylib ...

ASIHttpRequest 傳送資料

傳送資料 request addrequestheader referer value 檔案中的資料是需要時才從磁碟載入,所以只要web server能處理,那麼上傳大檔案是沒有問題的。asiformdatarequest request asiformdatarequest requestwith...

ASIHTTPRequest 進度追蹤

每個asihttprequest有兩個delegate用來追蹤進度 uploadprogressdelegate 上載 進度delegate可以是nsprogressindicators mac os x 或者 uiprogressviews iphone asihttprequest會自適應這兩個...