2011-12-09 319 views
0

我在iOS應用程序中使用ASIHTTPRequest。每個POST請求都需要一個有效的身份驗證令牌。我通過在應用程序上打開驗證/請求來從服務器獲取身份驗證令牌。ASIHTTP身份驗證令牌到期

身份驗證令牌每30分鐘左右過期一次。如果我需要一個新的令牌,那麼在響應中會出現一個301錯誤,然後再次創建auth/request以獲取新的有效令牌。

這就是我遇到的問題:我向服務器發佈了一些照片上傳,然後找回301,因爲是時候獲得新的身份驗證令牌。我做了認證/請求,但後來我失去了我對原來的新認證令牌的請求。我可以找出一種方法來堅持這個舊請求,並在新的令牌到位時重新開始,但我認爲在框架內有一個更簡單/更好的方法來完成此操作,這些操作在獲得後會自動啓動我的原始請求有效的令牌。

任何幫助表示讚賞。

回答

1

我想出了一個很好的解決方案。我要做的是將ASIHTTPRequest對象添加到數組中。實際上,我將所有請求添加到數組,並在成功處理後刪除它們。一些代碼來演示:

ASIFormDataRequest *asiRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlString]]; 
asiRequest.delegate = self; 
[asiRequest addPostValue:value forKey:@"key"]; 
[asiRequest startAsynchronous]; 

if (!requests) { 
    requests = [[NSMutableArray alloc]init]; 
} 
[requests addObject:asiRequest]; 

所以,現在你有一個數組的請求對象。當請求完成時,如果我需要獲得新的認證令牌,我請求它,獲取它,然後遍歷請求數組,並使用新的認證令牌進行請求,如下所示:

for (ASIFormDataRequest *asiRequest in requests) { 
    [asiRequest startAsynchronous]; 
}