2014-03-28 81 views
0

這可能是我。我可能在做一些愚蠢的事情。我對responseObject感到困惑,因此彙總了我能想到的最簡單的演示。感到困惑AFNetworking responseObject

我想在iOS應用程序中使用AFNetworking 2登錄到遠程服務器以獲取authToken。 我以爲一切工作正常。 我可以登錄並獲得一個AuthToken。

但是,如果我註銷,然後以不同的用戶身份登錄,我似乎得到第一個用戶響應對象,而不是一個新的。

我記錄了一個短片,演示了問題。這顯示iOS模擬器,xCode調試器和Web服務器日誌文件並排。作爲

  1. 登錄USER1使用在再次跌破
  2. 登錄細節的演示應用程序爲用戶2下面
細節:你可以在這裏查看: https://www.dropbox.com/s/f0zjdsj2mor0cjq/wrongresponsobject.mp4

步驟來重現

每次嘗試登錄時,我都可以在服務器日誌中看到請求。 正確的請求,正確的電子郵件和密碼正在發佈。 服務器正在返回一個包含authToken的響應數據的201響應。

在第二次登錄時處理*響應時,會使用原始響應對象,而不是新響應來匹配新請求。

我有一個工作演示服務器: 域:apitest.jserve1.com/ 路徑到登錄:/api/v1/session.json

測試用戶帳戶

USER1 @ example.com/user1password

[email protected]/user2password

我有一個演示應用程序,它連接到這個演示服務器,你可以在這裏下載 https://www.dropbox.com/s/zp62sjlb13z3g6q/WrongObjectResponseExample.zip

我是否錯過了一些明顯的東西?愚蠢? 如果是這樣,那麼如果你能告訴我我做錯了什麼,我會非常感激。

更新 - 解決

的問題是,該應用程序是保留先前登錄的Cookie。最後,添加下面的代碼爲我解決了這個問題。

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: networkServerAddress]; 
for (NSHTTPCookie *cookie in cookies) { 
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
} 

通過stackoverflow.com/questions/10984374/how-to-manage-sessions-with-afnetworking

回答

0

這可能是與服務器的問題。確保您使用新憑證登錄時清除了用戶會話。

+0

哦,我的,你是絕對正確的。謝謝。更仔細地檢查服務器日誌,我可以看到第一個請求觸及數據庫,第二個請求不是 - 服務器發送緩存的響應。 AFNetworking沒什麼問題。我是愚蠢的。 謝謝。 – Josh