Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSURLConnection是否自动保留从服务器发送的cookie?_Ios_Session Cookies - Fatal编程技术网

Ios NSURLConnection是否自动保留从服务器发送的cookie?

Ios NSURLConnection是否自动保留从服务器发送的cookie?,ios,session-cookies,Ios,Session Cookies,我从ios登录到tornado后端,并发回一个安全的\u cookie,我注意到只要我验证了我设置的安全\u cookie,我还可以请求其他信息。NSURLConnection会将cookie保留多长时间,或者一旦关闭应用程序,cookie将被删除 苹果文档中提到了这一点: URL加载系统会自动发送任何存储的cookie 适合于一个请求。除非请求指定不执行 发送饼干 你问题的几个方面 首先,默认情况下,NSURLConnection将根据设备的设置管理cookie。它将把cookie保存到存储中

我从ios登录到tornado后端,并发回一个安全的\u cookie,我注意到只要我验证了我设置的安全\u cookie,我还可以请求其他信息。NSURLConnection会将cookie保留多长时间,或者一旦关闭应用程序,cookie将被删除

苹果文档中提到了这一点:

URL加载系统会自动发送任何存储的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将被删除?”