我试着用Swift写几个cookie,这样当我显示一个webview时,它就能够读取这些cookie并做出适当的反应。我发现了许多如何创建cookie和读取苹果文档的示例,但我似乎无法获得有效的NSHTTPCookie对象。一直都是零。
这是我的密码:
let baseHost = "domain.com"
let oneYearInSeconds = NSTimeInterval(60 * 60 * 24 * 365)
func setCookie(key: String, value: AnyObject) {
var cookieProps = [
NSHTTPCookieOriginURL: baseHost,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
]
var cookie = NSHTTPCookie(properties: cookieProps)
// This line fails due to the nil cookie
NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie!)
}我的cookie变量是nil。我尝试了许多属性的组合,包括NSHTTPCookieOriginURL和NSHTTPCookieDomain,有和没有NSHTTPCookieSecure,甚至没有NSHTTPCookieExpires。总是nil。
有人知道我做错了什么吗?
发布于 2015-05-29 14:50:45
我认为问题在于您想要使用的是NSHTTTPCookieDomain,而不是NSHTTPCookieOriginURL。
你能试一下这样的属性吗:
var cookieProps = [
NSHTTPCookieDomain: baseHost,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
]如果不向构造函数提供有效属性,则将获得一个空值。您应该向NSHTTPCookieSecure提供布尔值,而不是字符串。
https://stackoverflow.com/questions/30532570
复制相似问题