如何在alamofire中设置Cookies? [英] How to set Cookies in alamofire?

查看:746
本文介绍了如何在alamofire中设置Cookies?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 Alamofire 中设置Cookie,以便每当我杀死应用并重新启动时,都会发送相同的Cookie?

How to set Cookies in Alamofire such that such that every time I kill the app and restart it, the same cookie is sent?

推荐答案

使用 NSHTTPCookie [cookiesWithResponseHeaderFields(_:forURL :)]方法从响应中获取Cookie。

Get cookies from response using the NSHTTPCookie [cookiesWithResponseHeaderFields(_:forURL:)] method.

// 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)
        }
    }
}

Swift 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)
                    }
                }
           }

这篇关于如何在alamofire中设置Cookies?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆