Ios NSURLConnection是否自动保留从服务器发送的cookie?
我从ios登录到tornado后端,并发回一个安全的\u cookie,我注意到只要我验证了我设置的安全\u cookie,我还可以请求其他信息。NSURLConnection会将cookie保留多长时间,或者一旦关闭应用程序,cookie将被删除 苹果文档中提到了这一点: URL加载系统会自动发送任何存储的cookie 适合于一个请求。除非请求指定不执行 发送饼干Ios NSURLConnection是否自动保留从服务器发送的cookie?,ios,session-cookies,Ios,Session Cookies,我从ios登录到tornado后端,并发回一个安全的\u cookie,我注意到只要我验证了我设置的安全\u cookie,我还可以请求其他信息。NSURLConnection会将cookie保留多长时间,或者一旦关闭应用程序,cookie将被删除 苹果文档中提到了这一点: URL加载系统会自动发送任何存储的cookie 适合于一个请求。除非请求指定不执行 发送饼干 你问题的几个方面 首先,默认情况下,NSURLConnection将根据设备的设置管理cookie。它将把cookie保存到存储中
你问题的几个方面 首先,默认情况下,NSURLConnection将根据设备的设置管理cookie。它将把cookie保存到存储中,并根据需要发送它们(当域与现有cookie匹配时)。这意味着,如果您使用保存在cookie存储中的cookie从URL发出请求,则该请求将被发送。这就解释了你提到的行为。通常,在默认设置下,cookie将持续一段时间 然而,这个最初的陈述可能对您的需求没有帮助。我假设您可能希望控制此
secure\u cookie
字段的过期时间(或“永远”保留),这样您的应用程序就不必在将来进一步验证
在这种情况下,NSHTTPCookieStorage
是查看的地方。此类将允许您检索:
[[NSHTPCookieStorage SharedHTPCookieStorage]cookiesForURL:[NSURL URLWithString:@”“]
并设置:
[[nshttpcookeStorage sharedhttpcookeStorage]setCookie:cookie]
(加上设置cookie字典对象)
根据经验和其他在线用户的反馈,您应该注意cookie存储并不总是100%可靠的。如果要向服务器发送特定的cookie和值,应将该值与应用程序一起存储(例如,prefs或Core数据),并在每次启动时使用相应的
NSHTTPCookieStorage
重置cookie。您必须从
这将帮助您更好地理解cookie的缓存是如何处理的
还有一个非常好的例子,其中提到可以从headers字段获取cookie,然后完全控制它。如果需要,请在应用程序再次启动时存储和使用
我希望这能帮助您解决问题。我唯一关心的问题是苹果文档中的qoute:“注意:更改应用程序中的cookie接受策略会影响所有其他正在运行的应用程序的cookie接受策略。当其他应用程序更改cookie存储或cookie接受策略时,NSHTTPCookieStorage通过发布NSHTTPCookieStorageCookiesChangedNotification和NSHTTPCookieStorageAcceptPolicyChangedNotification通知通知应用程序。“因此,我似乎应该使用NSURLConnection中的默认cookie管理。@RubyGladiator,该文档是Mac OS特有的,我认为上面的注释说明iOS不适用:iOS注释:iOS中的应用程序不共享cookie。确实如此,文档的设置方式使这一点令人困惑。这个问题没有答案吗?“NSURLConnection会将cookie保留多长时间,或者一旦用户关闭应用程序,cookie将被删除?”