【发布时间】:2012-05-27 20:13:56
【问题描述】:
我正在发送带有存储在设备端的 session-cookie 的 http 请求。问题是我想在应用程序终止时保留它。但似乎我的应用程序的所有 cookie 都被删除了。我在模拟器和设备上都试过了,它们的行为相同。
是否有任何 iOS 方法可以防止此 cookie 删除?如果没有,如何将其保存到磁盘并恢复?
为了安全起见,我打算将此 cookie 保存在 iOS 钥匙串中。而且我认为所有 NSHTTPCookie 属性都可以安全地转换为 NSString。所以我目前的想法是从 NSHTTPCookie -> NSDictionary -> String -> Save in Keychain 转换,然后返回使用获取原始cookie。问题是我不想经历转换 NSDictionary -> String 和解析 String -> NSDictionary 的麻烦。
【问题讨论】:
-
您可以自己保存和发送 cookie。
-
是的,但是iOS有提供这种机制吗?
-
有点。如果你有一个 NSHTTPURLResponse,你可以通过 NSHTTPCookie 的 +cookiesWithResponseHeaderFields:forURL: 方法得到一个 NSHTTPCookies 的 NSArray。然后发送它们,您只需要自己创建 Cookie: 标头。我将在答案中发布更多详细信息。
标签: ios session-cookies