在Alamofire中保存Cookie(快速)

扎克

我想存储我的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。

阿列克谢·邦达丘克(Alexey Bondarchuk)

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章