【发布时间】:2018-03-31 23:56:57
【问题描述】:
我需要一个 urlsession 将 cookie 存储在单独的 cookieStorage 中
在下面的代码中urlSession中的cookieStorage和共享的cookieStorage是一样的,是否可以创建一个单独的cookie存储
let config = URLSessionConfiguration.default
session = URLSession(configuration: config)
config.httpCookieAcceptPolicy = .always
session.configuration.httpCookieStorage = HTTPCookieStorage.sharedCookieStorage(forGroupContainerIdentifier: "adfadf")
let task = session.dataTask(with: URL(string: "https://www.google.com")!) { (data, response, error) in
print((response as? HTTPURLResponse)?.allHeaderFields ?? "")
DispatchQueue.main.async {
print(self.session.configuration.httpCookieStorage?.cookies ?? "wtf")
print(HTTPCookieStorage.shared === self.session.configuration.httpCookieStorage)
}
}
task.resume()
如果我使用 HTTPCookieStorage() 初始化 cookie 存储,结果相同
编辑
我尝试手动创建一个 cookie 存储,并在请求完成后向其中添加 cookie
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headers, for: url)
// cookies is not empty
self.cookieStore.setCookies(cookies, for: url, mainDocumentURL: nil)
print(self.cookieStore.cookies) //result is nil
最后我得到 nil 作为 cookie
【问题讨论】:
标签: ios swift urlsession nshttpcookiestorage