我是Swift的新手,我一直在遵循一些在线说明,以使用swift从会话中获取Cookie。当我在浏览器中打开URL时,它在响应标头中返回set-cookie。但是,如果我迅速向相同的URL发出请求,我会在标头中看到除set-cookie以外的所有内容。我下面的代码中的headerFields没有set-cookie,并且allCookies返回0个元素。
let task = session.dataTask(with: urlRequest){(data,response,error) in
if let httpResponse: HTTPURLResponse = response as? HTTPURLResponse{
if let headerFields = httpResponse.allHeaderFields as? [String: String]
{
let allCookies:NSArray = HTTPCookie.cookies(withResponseHeaderFields:headerFields, for: url) as NSArray
print(allCookies)
}
}
}
这是来自浏览器的响应头:
允许:GET,POST,HEAD,PUT,PATCH,DELETE 连接:保持活动状态 内容长度:0 日期:2018年6月22日星期五18:52:57 GMT 位置:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX P3P:CP =“ IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT” 服务器:nginx Set-Cookie:SESSION_ID = 6ee55921ad2478dd6f88496d8bd0807a7c995ed3e72a6ef5;路径= /; HttpOnly;安全; 严格的运输安全性:max-age = 31536000; includeSubdomains; X-Powered-By:Undertow
但是我代码中的httpResponse缺少Set-Cookie。我需要为下一个呼叫提取其值。