如何在Alamofire中设置Cookies,以便每当我杀死应用程序并重新启动它时,都会发送相同的cookie?
解决方法
使用NSHTTPCookie [cookiesWithResponseHeaderFields(_:forURL :)]方法从响应中获取cookie.
// setCookies func setCookies(cookies: NSHTTPCookie){ Alamofire.Manager.sharedInstance.session.configuration.httpcookiestorage?.setCookies(cookies,forURL: response.URL!,mainDocumentURL: nil) } // getCookies func getCookies() { let parameters: [String: AnyObject] = [:] Alamofire.request(.POST,"http://test.com/test",parameters: parameters).responseJSON { response in if let header = response.response?.allHeaderFields as? [String: String],URL = response.request?.URL { let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(header,forURL: URL) print(cookies) } } }
斯威夫特3:
func setCookies(cookies: HTTPCookie){ Alamofire.SessionManager.default.session.configuration.httpcookiestorage?.setCookies(cookies,forURL: URL,mainDocumentURL: nil) } Alamofire.request(url,method: HTTPMethod.post,parameters: parameters).responseData { (responSEObject) -> Void in if let resposecode = responSEObject.response?.statusCode { if resposecode != 200 { // error } else { // view all cookies print(httpcookiestorage.shared.cookies) } } }