ASIHTTPRequest缓存禁用

时间:2014-05-22 21:17:44

标签: ios facebook facebook-graph-api httprequest asihttprequest

我正在使用ASIHTTPRequest来与服务器通信iOS应用程序。到目前为止,我一直在许多其他项目中使用该库,我没有遇到任何问题。

但是现在,我编写的应用程序有3种不同的登录/注册方法:

  1. 正常登录(用户名/密码)
  2. 与Facebook联络
  3. 使用RunKeeper连接
  4. 如果单独使用它们,那么这些方法中的每一种都很有效。例如,我可以使用用户名和密码进行正常登录,我从用户那里获取此信息,然后使用HTTPRequest库将其发送到服务器,服务器为我提供了一个有效的access_token,可以毫无问题地登录。与Facebook或runKeeper相同。

    但是,如果我执行以下步骤,任何工作都可以:

    1. 我使用Facebok或RunKeeper(无论哪一个)使用已经链接到某个用户的帐户登录(我们可以称他为X)。
    2. 我向Facebook / RunKeeper请求access_token和用户的userID,我将此信息发送到我的服务器。
    3. 我的服务器为用户X提供了有效的access_token,我在仪表板中加载了他的信息。
    4. 用户X退出并清除NSUserDefaults中的所有信息并进行同步。

    5. 用户Y使用他的用户名和密码登录(登录方法编号为1)。

    6. 我的服务器为用户Y提供了有效的access_token,我在仪表板中加载了他的信息。
    7. 用户Y注销并清除NSUserDefaults中的所有存储数据并进行同步。

    8. 最后,任何其他用户(例如Z)都会使用Facebook / runKeeper再次登录。

    9. 我从社交网络获取所需的所有信息,然后将其发送到我的服务器。
    10. 我的服务器给了我一个有效的access_token,我加载了仪表板,但它不是用户Z的仪表板,它是上一个使用用户名/密码登录的用户的仪表板。
    11. 我知道阅读这些步骤你可以认为这是服务器的问题,但我使用cURL进行了一些测试,并且令牌的响应总是正确的。然后我认为它可能是iOS应用程序中的一些问题,但我看不到任何断点和我做过的NSLog。

      我读到ASIHttpRequest库中的缓存,我在服务器的所有请求中添加了两行代码,用于禁用所有缓存系统,但它不起作用:

      [request setCachePolicy: ASIDoNotWriteToCacheCachePolicy | ASIDoNotReadFromCacheCachePolicy];
      [request addRequestHeader:@"Cache-Control" value:@"no-cache"];
      

      我不知道你们中是否有人遇到过同样的问题,或者你们对我能尝试什么有所了解,但我们将非常感激。

      如果您需要更多信息,请告诉我,我会看到我能做什么

      谢谢!

1 个答案:

答案 0 :(得分:1)

停止使用ASIHTTPRequest的重要建议,因为它与ios 7不兼容

我将ios 7发布到生产后面临很多问题

你可以改用它 AFNetwork