ios - 手动设置 NSHTTPCookieExpires

标签 ios objective-c nshttpcookie

我想在 NSHTTPCookieStorage 中设置一个 NSHTTPCookie

为此,我创建了一个 cookie 并将其添加到 NSHTTPCookieStorage 中,如下所示:-

NSDictionary  *propertiesDevice = [NSDictionary dictionaryWithObjectsAndKeys:
                                   @"http://www.sample.com/", NSHTTPCookieDomain,
                                   @"/", NSHTTPCookiePath,
                                   @"someCookieName", NSHTTPCookieName,
                                   @"myCookieValue", NSHTTPCookieValue,
                                   timeStamp,NSHTTPCookieExpires,nil];
NSHTTPCookie *cookieDevice = [NSHTTPCookie cookieWithProperties:propertiesDevice];
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookieDevice];

除了 NSHTTPCookieExpires 之外,NSHTTPCookie 集的所有属性都符合预期。

  1. 如果我传递 [NSDate date],则设置该值。但问题是它不是所需的 NSHTTPCookie 格式 Expires=Tue, 15-Jan-2013 21:47:38 GMT[NSDate日期]的格式为2014-06-19 12:04:00 +0000
  2. 当我尝试使用 NSDateFormatter 更改 NSDate 的格式时,输出为 NSString
  3. 问题是无论我为 NSHTTPCookieExpires 键设置什么 NSString,它都需要 null 值。

尽管在文档中它说 NSHTTPCookieExpires 采用 NSStringNSDate

    From Apple Doc:-

    <td>NSHTTPCookieExpires</td>
    <td>NSDate or NSString</td>
    <td>NO</td>
    <td>Expiration date for the cookie. Used only for version 0
    cookies. Ignored for version 1 or greater.</td>

有没有人知道为什么我们不能为键 NSHTTPCookieExpires 设置 NSString 值?

最佳答案

在我的例子中它没有工作,因为我正在克隆一个现有的 cookie 和 NSHTTPCookieDiscard在那里定义。

删除它解决了问题。

还有其他规则可以使过期日期nil ,即使您使用有效的 NSDate 设置它或 NSString .

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookie_Class/

关于ios - 手动设置 NSHTTPCookieExpires,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306275/

相关文章:

ios - iOS 13 中 UITableViewCell 的默认背景色是什么?

ios - 获取 ImageView 和触摸之间的角度

objective-c - NSTask - 执行 echo 命令

ios - WKWebView 是否使用来自 Safari 的 cookie?

ios - 在 UNNotificationServiceExtension 中为 iOS 远程通知添加系统声音

ios - 通过隐藏标签栏自定义 UITabBarController。馊主意 ?

objective-c - 如何使用 SDK 3.1 指定用户用于发布的应用程序名称(通过应用程序名称)

objective-c - 当前 View Controller 显示黑屏

ios - 检查 session Cookie 的有效性