概述
在IOS中,cookie数据是由NSHTTPCookieStorage类来管理的,从其类名可以看出,这是一个仓库,一个专门存放Cookie数据的仓库。我们从中获取一个Cookie,得到到的是一个NSHTTPCookie类,它包装了一个完整的Cookie,我们通过这个类可以获取Cookie的各种信息。
在默认情况下,当一个网络请求接收到Cookie数据时,会自动保存下来,下次请求会自动带上Cookie,我们无需插手。不过我们也要清楚如何取查询这些被保存的Cookie。
SCCookie类是一个简单的封装,通过几个类方法可以快速获得需要的Cookie值。
SCCookie类
1import Foundation 2 3/// 访问Cookie的相关方法 4public class SCCookie{ 5 6 7 /// 获取存放Cookie的Storage 8 public class func GetCookieStorage()->NSHTTPCookieStorage{ 9 return NSHTTPCookieStorage.sharedHTTPCookieStorage() 10 } 11 12 /// 获取所有Cookie数组 13 public class func GetCookieArray()->[NSHTTPCookie]{ 14 15 let cookieStorage = GetCookieStorage() 16 let cookieArray = cookieStorage.cookies 17 if let arr = cookieArray{ 18 return cookieArray as! [NSHTTPCookie] 19 } 20 else{ 21 return [] 22 } 23 } 24 25 /// 获取Cookie值 26 public class func GetCookieByName(let cookieName:String)->String? 27 { 28 let cookieArray:[NSHTTPCookie] = GetCookieArray() 29 var value:String? 30 if cookieArray.count > 0 31 { 32 33 for cookie in cookieArray 34 { 35 36 if cookie.name == cookieName 37 { 38 value = cookie.value 39 break 40 } 41 } 42 } 43 return value 44 } 45 46 /// 根据Cookie内容数据,获取一个对应的NSDictionary数据 47 public class func GetRequestFiledByCookie(let cookieAttay:[NSHTTPCookie])->NSDictionary{ 48 49 let requestFiled = NSHTTPCookie.requestHeaderFieldsWithCookies(cookieAttay) 50 return requestFiled as NSDictionary 51 } 52}
Git地址
http://devonios.com/go/swiftcommon
tips:
本文由wp2blog导入,原文链接:http://devonios.com/sccookie.html