由AFNetworking responseObject混淆

时间:2014-03-28 19:35:24

标签: ios afnetworking afnetworking-2

可能是我。我可能正在做一些愚蠢的事情。我对于responseObject感到困惑,所以把我能想到的最简单的演示放在一起。

我想在iOS应用程序中使用AFNetworking 2登录到远程服务器以获取authToken。 我以为一切都很好。 我可以登录并获得AuthToken。

然而.....如果我退出然后以其他用户身份登录,我似乎得到第一个用户responseObject而不是新用户。

我录制了一段展示此问题的简短视频。这将并排显示iOS模拟器,xCode调试器和Web服务器日志文件。您可以在此处查看:https://www.dropbox.com/s/f0zjdsj2mor0cjq/wrongresponsobject.mp4

重现的步骤:

  1. 使用演示应用程序以及以下详细信息
  2. 以user1身份登录
  3. 再次以user2身份登录,详情如下
  4. 每次尝试登录时,我都可以在服务器日志中看到该请求。 正在发布正确的电子邮件和密码的正确请求。 服务器返回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

1 个答案:

答案 0 :(得分:0)

这可能是服务器的问题。使用新凭据登录时,请确保清除用户会话。