可能是我。我可能正在做一些愚蠢的事情。我对于responseObject感到困惑,所以把我能想到的最简单的演示放在一起。
我想在iOS应用程序中使用AFNetworking 2登录到远程服务器以获取authToken。 我以为一切都很好。 我可以登录并获得AuthToken。
然而.....如果我退出然后以其他用户身份登录,我似乎得到第一个用户responseObject而不是新用户。
我录制了一段展示此问题的简短视频。这将并排显示iOS模拟器,xCode调试器和Web服务器日志文件。您可以在此处查看:https://www.dropbox.com/s/f0zjdsj2mor0cjq/wrongresponsobject.mp4
重现的步骤:
每次尝试登录时,我都可以在服务器日志中看到该请求。 正在发布正确的电子邮件和密码的正确请求。 服务器返回201响应,其中包含一些响应数据,包括authToken。
在第二次登录时处理*响应时,使用原始responseObject而不是新响应来匹配新请求。
我有一个有效的演示服务器: 域名:apitest.jserve1.com/ 路径登录:/api/v1/session.json
测试用户帐户
user1@example.com / user1password
user2@example.com / 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];
}
via stackoverflow.com/questions/10984374/how-to-manage-sessions-with-afnetworking
答案 0 :(得分:0)
这可能是服务器的问题。使用新凭据登录时,请确保清除用户会话。