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

10-09 20:20
查看更多