NSURLConnection是否会自动保存从服务器发送的Cookie?
我从ioslogin到我的龙卷风后端,并发回了一个secure_cookie,我注意到,只要我validation了我设置的secure_cookie,我也可以请求其他信息。 NSURLConnection持续了多长时间,或者一旦closures了应用程序,cookie会被删除?
这在Apple文档中提到:
URL加载系统自动发送适合NSURLRequest的任何存储的cookie。 除非请求指定不发送cookie。
你的问题的几个方面。
首先,默认情况下,NSURLConnection将根据设备的设置pipe理Cookie。 它会将cookie保存到商店并根据需要发送(当域名与现有的cookie匹配时)。 这意味着,如果您使用保存在Cookie存储中的Cookie发送请求,该请求将被发送。 这解释了你提到的行为。 通常,使用默认设置,Cookie将会持续相当长的一段时间。
但是,这个初始声明可能对您的需求没有帮助。 我假设你可能想要控制这个secure_cookie
字段的到期(或永远“永远”),所以你的应用程序在将来不必进一步authentication。
在这种情况下, NSHTTPCookieStorage
是需要查看的地方。 这个类将允许你检索:
[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@“ http://example.com ”]]
并设置:
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]
(加上设置cookie字典对象)
基于经验和在线其他人的反馈,您应该注意到,Cookie存储并不总是100%可靠。 如果您希望将特定的cookie和值发送给服务器,则应该将该值与应用程序(例如prefs或Core Data)一起存储,并在每次启动时使用相应的NSHTTPCookieStorage
重置该cookie。
您必须从这里查看Cookiecachingpipe理。这将帮助您更好地了解如何处理Cookie的caching。
还有一个非常好的描述 ,在那里提到你可以从头域获得cookie,然后你完全控制它。 如果你想要,存储和再次启动应用程序时使用。
我希望这可以帮助你解决这个问题。