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,然后你完全控制它。 如果你想要,存储和再次启动应用程序时使用。

我希望这可以帮助你解决这个问题。