我想在NSHTTPCookie
中设置NSHTTPCookieStorage
。
为此,我正在创建一个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];
除了NSHTTPCookie
之外,NSHTTPCookieExpires
的所有属性都按预期设置。
[NSDate date]
,则设置该值。但问题是它不是NSHTTPCookie
格式的Expires=Tue, 15-Jan-2013 21:47:38 GMT
。 [NSDate date]
的格式为2014-06-19 12:04:00 +0000
。NSDate
更改NSDateFormatter
的格式时,输出为NSString
。NSString
设置为NSHTTPCookieExpires
密钥,都需要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>
有没有人知道为什么我们无法为密钥NSString
设置NSHTTPCookieExpires
值?
答案 0 :(得分:0)
就我而言,它不起作用,因为我正在克隆现有的cookie并在那里定义了NSHTTPCookieDiscard
。
删除它解决了这个问题。
即使您使用有效的nil
或NSDate
设置过期日期,还有其他规则可以设置过期日期NSString
。