我正在努力存储我的应用程序的 cookie。
我正在调用 HTTPCookieStorage
类的 setcookie() 方法。
设置cookie:
let cookies = HTTPCookie.cookies(withResponseHeaderFields: responseheader, for: response.url!)
for cookie in cookies {
var cookieProperties = [HTTPCookiePropertyKey: Any]()
cookieProperties[HTTPCookiePropertyKey.name] = cookie.name
cookieProperties[HTTPCookiePropertyKey.value] = cookie.value
cookieProperties[HTTPCookiePropertyKey.domain] = cookie.domain
cookieProperties[HTTPCookiePropertyKey.path] = cookie.path
cookieProperties[HTTPCookiePropertyKey.version] = NSNumber(value: cookie.version)
cookieProperties[HTTPCookiePropertyKey.expires] = cookie.expiresDate
let newCookie = HTTPCookie(properties: cookieProperties)
HTTPCookieStorage.shared.setCookie(newCookie!)
}
从 cookie 存储中获取 cookie:
for cookie in HTTPCookieStorage.shared.cookies! {
print(cookie)
}
删除 cookie
for cookie in HTTPCookieStorage.shared.cookies! {
HTTPCookieStorage.shared.deleteCookie(cookie)
}
但是,即使我注释掉 setcookie 方法,cookie 也会自动设置。这怎么可能 ? header 中的 cookie 和 cookie-store 中的 cookie 是相同的,即使我没有调用设置 cookie 方法
最佳答案
这是因为 default HTTPCookieStorage
的 cookieAcceptPolicy
。即 NSHTTPCookieAcceptPolicyAlways
关于swift - 快速自动设置cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41612937/