【发布时间】:2015-01-29 08:59:30
【问题描述】:
var httpCookie:NSHTTPCookieStorage=NSHTTPCookieStorage.sharedHTTPCookieStorage();
println(httpCookie)
<NSHTTPCookieStorage cookies count:2>
如何将每个 cookie 循环起来?
【问题讨论】:
标签: swift count nshttpcookiestorage
var httpCookie:NSHTTPCookieStorage=NSHTTPCookieStorage.sharedHTTPCookieStorage();
println(httpCookie)
<NSHTTPCookieStorage cookies count:2>
如何将每个 cookie 循环起来?
【问题讨论】:
标签: swift count nshttpcookiestorage
看看这段代码
var cookies:[NSHTTPCookie] = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as [NSHTTPCookie]
for cookie:NSHTTPCookie in cookies as [NSHTTPCookie] {
if cookie.name as String == "CookieName" {
var cookieValue : String = "CookieName=" + cookie.value! as String
//if you want to add to your request
youRequest.setValue(cookieValue, forHTTPHeaderField: "cookie")
}
}
【讨论】:
在 Swift 5 中使用 URLSession 是一种循环返回 Cookie 的简洁方法...
URLSession.shared.dataTask(with: url) { (data, resp, error) in
if let response = resp as? HTTPURLResponse {
print("?Status Code \(response.statusCode)")
if let cookies:[HTTPCookie] = HTTPCookieStorage.shared.cookies{
for cookie:HTTPCookie in cookies as [HTTPCookie] {
// logic here...
}
}
}
请记住,cookie 可能已经在商店内。如果您想要一个可靠的计数,请确保 - 在发送请求之前 - 清理 Cookie 存储...
HTTPCookieStorage.shared.deleteCookie(cookie: HTTPCookie)
【讨论】: