我想存储我的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中测试
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句