概述
在IOS中,cookie数据是由NSHTTPCookieStorage类来管理的,从其类名可以看出,这是一个仓库,一个专门存放Cookie数据的仓库。我们从中获取一个Cookie,得到到的是一个NSHTTPCookie类,它包装了一个完整的Cookie,我们通过这个类可以获取Cookie的各种信息。
在默认情况下,当一个网络请求接收到Cookie数据时,会自动保存下来,下次请求会自动带上Cookie,我们无需插手。不过我们也要清楚如何取查询这些被保存的Cookie。
SCCookie类是一个简单的封装,通过几个类方法可以快速获得需要的Cookie值。
SCCookie类
import Foundation /// 访问Cookie的相关方法 public class SCCookie{ /// 获取存放Cookie的Storage public class func GetCookieStorage()->NSHTTPCookieStorage{ return NSHTTPCookieStorage.sharedHTTPCookieStorage() } /// 获取所有Cookie数组 public class func GetCookieArray()->[NSHTTPCookie]{ let cookieStorage = GetCookieStorage() let cookieArray = cookieStorage.cookies if let arr = cookieArray{ return cookieArray as! [NSHTTPCookie] } else{ return [] } } /// 获取Cookie值 public class func GetCookieByName(let cookieName:String)->String? { let cookieArray:[NSHTTPCookie] = GetCookieArray() var value:String? if cookieArray.count > 0 { for cookie in cookieArray { if cookie.name == cookieName { value = cookie.value break } } } return value } /// 根据Cookie内容数据,获取一个对应的NSDictionary数据 public class func GetRequestFiledByCookie(let cookieAttay:[NSHTTPCookie])->NSDictionary{ let requestFiled = NSHTTPCookie.requestHeaderFieldsWithCookies(cookieAttay) return requestFiled as NSDictionary } }