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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...