【问题标题】:is possible to keep session alive using NSURLConnection doing different requests?可以使用 NSURLConnection 执行不同的请求来保持会话活动吗?
【发布时间】:2012-02-14 12:02:33
【问题描述】:

我正在使用 NSRULConnection 在我的 iphone 应用程序上发出 http 请求。一切正常。

问题是登录后我需要保持相同的会话才能从服务器获取数据。

我读了几篇文章说我只需要使用相同的 NSURLConnection 实例,它会使用相同的会话......如果这是真的,那对我来说没有意义,因为 NSURLConnection 不可变并且由于我必须访问不同的页面,因此无法更改请求。

有没有简单的方法来使用 NSURLConnection 保持会话。

【问题讨论】:

  • 这里的“会话”是什么意思?
  • 我认为这里的“会话”被称为 TCP 会话。顺便说一句,你找到答案了吗?

标签: objective-c cocoa session nsurlconnection keep-alive


【解决方案1】:

如果您使用 cookie 管理会话,则无需执行任何特殊操作即可实现会话管理。The URL loading system 自动发送任何适合 NSURLRequest 的存储 cookie。除非请求指定不发送 cookie。因此,您的会话应该为您自动管理。

但是,正如 Apple 的文档所说,如果有人将 cookie 接受政策设置为拒绝所有 cookie 或仅选择性地接受 cookie,那么您可能处于修复状态(您也可以自己更改 cookie 接受政策)。在这种情况下,您可能会求助于基于 URL 的会话管理;在其中您将会话标识符作为参数附加到 URL(您可以将此标识符作为成功登录响应的一部分),可以在服务器端提取。然而,这被认为是非常糟糕的做法。

我经常遇到的另一种方法是获取会话标识符作为成功登录响应的一部分,并将该标识符作为参数包含在所有后续请求中。尽管这需要对服务器处理会话的方式进行重大更改。

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2012-05-29
    • 2021-09-18
    • 1970-01-01
    相关资源
    最近更新 更多