微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 如何在alamofire中设置Cookie?

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

解决方法

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

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

斯威夫特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)
                    }
                }
           }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐