我想存储我的cookie,以便在我重新打开应用程序时可以恢复以前实例中存储的cookie。
要初始化alamofire,我可以使用:
let manager = Alamofire.Manager.sharedInstance
我加载Cookie的代码是:
let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headerFields, forURL: URL)
Alamofire.Manager.sharedInstance.session.configuration.HTTPCookieStorage?.setCookies(cookies, forURL: URL, mainDocumentURL: nil)
但是当我重启手机时,它会忘记所有的cookie。
最佳答案
1,添加方法将cookie保存在NSUserDefaults
中
func setCookie (cookie:NSHTTPCookie)
{
NSUserDefaults.standardUserDefaults().setObject(cookie.properties, forKey: "kCookie")
NSUserDefaults.standardUserDefaults().synchronize()
}
2,重启后取回的方法
func getCookie () -> NSHTTPCookie
{
let cookie = NSHTTPCookie(properties: NSUserDefaults.standardUserDefaults().objectForKey("kCookie") as! [String : AnyObject])
return cookie!
}
3,在Alamofire中根据请求检索Cookie
let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(response.response?.allHeaderFields as! [String: String], forURL: (response.response?.URL!)!)
//Save method
setCookie(cookies.first!)
4,重启后使用
getCookie
方法进行任何请求NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(getCookie())
提示:在Swift 2.2中测试
关于ios - 在Alamofire(Swift)中保存Cookie,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35105411/