2012-01-27 67 views
8

我正在編寫一個REST客戶端(使用AFNetworking),並且需要在應用程序的單個實例內觸發創建新會話的功能。

換句話說,我想:
1 - 與服務器
2身份驗證 - 做一些REST調用
3 - 模擬 「退出」
4 - 與服務器
5重新認證 - 做一些更多的REST調用

AFNetworking與初始身份驗證和REST調用是偉大的,但我無法弄清楚我將如何清除會話和「重置」在同一實例內的連接。當我使用ASIHTTP時,我只是:
[ASIHTTPRequest clearSession];

有沒有辦法做類似的AFNetworking?

使用AFNetworking重置基本身份驗證憑證

回答

1

就我所知,休息電話不是基於會話的。這意味着您無法模擬特定呼叫中的身份驗證和註銷會話。我認爲你可以做的是對每一個對終點的調用進行身份驗證。因此,對於每個終點(方法),您都要驗證呼叫者身份。我認爲這是您可以在寧靜系統中進行的投注。

+8

嗯,我用它更多的發揮各地,它看起來像刷新cookie緩存似乎是在做我的伎倆:NSHTTPCookieStorage * cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage] NSArray * cookies = [cookieStorage cookies]; (NSHTTPCookie * Cookie in cookies){ [cookieStorage deleteCookie:cookie]; NSLog(@「已刪除的cookie」); } – user1174179 2012-01-27 19:40:44

+1

這個cookie提示非常有用。謝謝。 – Keller 2012-09-20 16:10:32

+0

cookie清除也是我正在尋找的。 – Harpastum 2012-10-01 22:48:10

9

使用AFHTTPClient(請參閱示例項目中的API客戶端)。

憑證可以設置爲-setAuthorizationHeaderWithUsername:password:。從該HTTP客戶端創建的每個請求都將具有一個Authorization HTTP標頭,類似於瀏覽器會話。

當用戶註銷或者您想清除憑據時,請執行-clearAuthorizationHeader

2

更簡單。

[request setHTTPShouldHandleCookies:NO];