我想在 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
集的所有属性都符合预期。
- 如果我传递
[NSDate date]
,则设置该值。但问题是它不是所需的NSHTTPCookie
格式Expires=Tue, 15-Jan-2013 21:47:38 GMT
。[NSDate日期]
的格式为2014-06-19 12:04:00 +0000
。 - 当我尝试使用
NSDateFormatter
更改NSDate
的格式时,输出为NSString
。 - 问题是无论我为
NSHTTPCookieExpires
键设置什么NSString
,它都需要null
值。
尽管在文档中它说 NSHTTPCookieExpires
采用 NSString
或 NSDate
。
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
.
关于ios - 手动设置 NSHTTPCookieExpires,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306275/