概述
在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
}
}
Git地址
http://devonios.com/go/swiftcommon
tips:
本文由wp2blog导入,原文链接:http://devonios.com/sccookie.html