最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解iOS App開發(fā)中Cookie的管理方法

 更新時(shí)間:2016年07月08日 09:30:24   作者:琿少  
iOS中主要靠NSHTTPCookieStorage和NSHTTPCookie來(lái)管理Cookie,下面我們就來(lái)詳解iOS App開發(fā)中Cookie的管理方法,在最后一部分會(huì)單獨(dú)整理出如何清除Cookie的方法.

一、何為Cookie

Cookie是網(wǎng)站為了便是終端身份,保存在終端本地的用戶憑證信息。Cookie中的字段與意義由服務(wù)端進(jìn)行定義。例如,當(dāng)用戶在某個(gè)網(wǎng)站進(jìn)行了登錄操作后,服務(wù)端會(huì)將Cookie信息返回給終端,終端會(huì)將這些信息進(jìn)行保存,在下一次再次訪問(wèn)這個(gè)網(wǎng)站時(shí),終端會(huì)將保存的Cookie信息一并發(fā)送到服務(wù)端,服務(wù)端根據(jù)Cookie信息是否有效來(lái)判斷此用戶是否可以自動(dòng)登錄。

二、iOS中進(jìn)行Cookie管理的兩個(gè)類

iOS中進(jìn)行HTTP網(wǎng)絡(luò)請(qǐng)求Cookie管理主要由兩個(gè)類負(fù)責(zé),一個(gè)類是NSHTTPCookieStorage類,一個(gè)是NSHTTPCookie類。

1.NSHTTPCookieStorage

NSHTTPCookieStorage類采用單例的設(shè)計(jì)模式,其中管理著所有HTTP請(qǐng)求的Cookie信息,常用方法如下:

//獲取單例對(duì)象
+ (NSHTTPCookieStorage *)sharedHTTPCookieStorage;
//所有Cookie數(shù)據(jù)數(shù)組 其中存放NSHTTPCookie對(duì)象
@property (nullable , readonly, copy) NSArray<NSHTTPCookie *> *cookies;
//手動(dòng)設(shè)置一條Cookie數(shù)據(jù)
- (void)setCookie:(NSHTTPCookie *)cookie;
//刪除某條Cookie信息
- (void)deleteCookie:(NSHTTPCookie *)cookie;
//刪除某個(gè)時(shí)間后的所有Cookie信息 iOS8后可用
- (nullable NSArray<NSHTTPCookie *> *)cookiesForURL:(NSURL *)URL;
//獲取某個(gè)特定URL的所有Cookie數(shù)據(jù)
- (void)removeCookiesSinceDate:(NSDate *)date NS_AVAILABLE(10_10, 8_0);
//為某個(gè)特定的URL設(shè)置Cookie
- (void)setCookies:(NSArray<NSHTTPCookie *> *)cookies forURL:(nullable NSURL *)URL mainDocumentURL:(nullable NSURL *)mainDocumentURL;
//Cookie數(shù)據(jù)的接收協(xié)議
/*
枚舉如下:
typedef NS_ENUM(NSUInteger, NSHTTPCookieAcceptPolicy) {
    NSHTTPCookieAcceptPolicyAlways,//接收所有Cookie信息
    NSHTTPCookieAcceptPolicyNever,//不接收所有Cookie信息
    NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain//只接收主文檔域的Cookie信息
};
*/
@property NSHTTPCookieAcceptPolicy cookieAcceptPolicy;
系統(tǒng)下面的兩個(gè)通知與Cookie管理有關(guān):

//Cookie數(shù)據(jù)的接收協(xié)議改變時(shí)發(fā)送的通知
FOUNDATION_EXPORT NSString * const NSHTTPCookieManagerAcceptPolicyChangedNotification;
//管理的Cookie數(shù)據(jù)發(fā)生變化時(shí)發(fā)送的通知
FOUNDATION_EXPORT NSString * const NSHTTPCookieManagerCookiesChangedNotification;

2.NSHTTPCookie

NSHTTPCookie是具體的HTTP請(qǐng)求Cookie數(shù)據(jù)對(duì)象,其中屬性方法如下:

//下面兩個(gè)方法用于對(duì)象的創(chuàng)建和初始化 都是通過(guò)字典進(jìn)行鍵值設(shè)置
- (nullable instancetype)initWithProperties:(NSDictionary<NSString *, id> *)properties;
+ (nullable NSHTTPCookie *)cookieWithProperties:(NSDictionary<NSString *, id> *)properties;
//返回Cookie數(shù)據(jù)中可用于添加HTTP頭字段的字典
+ (NSDictionary<NSString *, NSString *> *)requestHeaderFieldsWithCookies:(NSArray<NSHTTPCookie *> *)cookies;
//從指定的響應(yīng)頭和URL地址中解析出Cookie數(shù)據(jù)
+ (NSArray<NSHTTPCookie *> *)cookiesWithResponseHeaderFields:(NSDictionary<NSString *, NSString *> *)headerFields forURL:(NSURL *)URL;
//Cookie數(shù)據(jù)中的屬性字典
@property (nullable, readonly, copy) NSDictionary<NSString *, id> *properties;
//請(qǐng)求響應(yīng)的版本
@property (readonly) NSUInteger version;
//請(qǐng)求相應(yīng)的名稱
@property (readonly, copy) NSString *name;
//請(qǐng)求相應(yīng)的值
@property (readonly, copy) NSString *value;
//過(guò)期時(shí)間
@property (nullable, readonly, copy) NSDate *expiresDate;
//請(qǐng)求的域名
@property (readonly, copy) NSString *domain;
//請(qǐng)求的路徑
@property (readonly, copy) NSString *path;
//是否是安全傳輸
@property (readonly, getter=isSecure) BOOL secure;
//是否只發(fā)送HTTP的服務(wù)
@property (readonly, getter=isHTTPOnly) BOOL HTTPOnly;
//響應(yīng)的文檔
@property (nullable, readonly, copy) NSString *comment;
//相應(yīng)的文檔URL
@property (nullable, readonly, copy) NSURL *commentURL;
//服務(wù)端口列表
@property (nullable, readonly, copy) NSArray<NSNumber *> *portList;

三、清除Cookie
清除所有的cookie 方法:

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; 
    if (url) { 
        NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url]; 
        for (int i = 0; i < [cookies count]; i++) { 
            NSHTTPCookie *cookie = (NSHTTPCookie *)[cookies objectAtIndex:i]; 
            [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
             
        }  
  清除某一個(gè)特定的cookie方法:
NSArray * cookArray = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:self.loadURL]]; NSString * successCode = @""; for (NSHTTPCookie*cookie in cookArray) { if ([cookie.name isEqualToString:@"cookiename"]) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; } } 

清除某一個(gè)url緩存的方法:
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:[NSURLRequest requestWithURL:url]]; 

清除所有緩存方法:       
[[NSURLCache sharedURLCache] removeAllCachedResponses]; 

相關(guān)文章

  • iOS開發(fā)之tableView實(shí)現(xiàn)左滑刪除功能

    iOS開發(fā)之tableView實(shí)現(xiàn)左滑刪除功能

    我們?cè)谑褂靡恍?yīng)用的時(shí)候,在滑動(dòng)一些聯(lián)系人的某一行的時(shí)候,會(huì)出現(xiàn)刪除、置頂、更多等等的按鈕,下面這篇文章主要就介紹了iOS用tableView實(shí)現(xiàn)左劃刪除功能的方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • iOS圖片拉伸技巧小結(jié)

    iOS圖片拉伸技巧小結(jié)

    這篇文章主要為大家詳細(xì)介紹了iOS圖片拉伸的技巧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • iOS 12適配以及問(wèn)題小記

    iOS 12適配以及問(wèn)題小記

    蘋果官方在上個(gè)月推送了iOS12系統(tǒng),作為一名開發(fā)者當(dāng)然要緊跟更新技術(shù),所以下面這篇文章主要給大家介紹了關(guān)于iOS 12適配以及一些問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • iOS開發(fā)-調(diào)用系統(tǒng)相機(jī)和相冊(cè)獲取照片示例

    iOS開發(fā)-調(diào)用系統(tǒng)相機(jī)和相冊(cè)獲取照片示例

    這篇文章主要介紹了iOS開發(fā)-調(diào)用系統(tǒng)相機(jī)和相冊(cè)獲取照片示例的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • iOS新版微信底部工具欄遮擋問(wèn)題完美解決

    iOS新版微信底部工具欄遮擋問(wèn)題完美解決

    這篇文章主要介紹了iOS新版微信底部工具欄遮擋問(wèn)題完美解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • iOS創(chuàng)建對(duì)象的不同姿勢(shì)詳解

    iOS創(chuàng)建對(duì)象的不同姿勢(shì)詳解

    這篇文章主要介紹了iOS創(chuàng)建對(duì)象的不同姿勢(shì),文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-02-02
  • 詳解IOS中Tool Bar切換視圖方法

    詳解IOS中Tool Bar切換視圖方法

    這篇文章主要介紹了詳解IOS中Tool Bar切換視圖方法以及實(shí)例代碼分析,需要的朋友學(xué)習(xí)一下吧。
    2017-12-12
  • iOS 攔截重定向302跳轉(zhuǎn)的方法詳解

    iOS 攔截重定向302跳轉(zhuǎn)的方法詳解

    這篇文章主要介紹了iOS 攔截重定向302跳轉(zhuǎn)的方法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • iOS中仿QQ側(cè)滑菜單功能

    iOS中仿QQ側(cè)滑菜單功能

    這篇文章主要介紹了iOS中仿QQ側(cè)滑菜單功能,在實(shí)現(xiàn)此功能之前,需要先了解UITabBarController的層級(jí)結(jié)構(gòu),具體實(shí)現(xiàn)思路大家可以參考下本文
    2017-07-07
  • iOS APP中保存圖片到相冊(cè)時(shí)崩潰的解決方法

    iOS APP中保存圖片到相冊(cè)時(shí)崩潰的解決方法

    下面小編就為大家分享一篇iOS APP中保存圖片到相冊(cè)時(shí)崩潰的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12

最新評(píng)論

固安县| 张家港市| 浠水县| 津南区| 体育| 五寨县| 龙井市| 右玉县| 彭阳县| 隆德县| 喜德县| 巨野县| 金湖县| 城市| 禄劝| 平凉市| 陆河县| 城口县| 赣州市| 手游| 双柏县| 黔西县| 灵璧县| 迁西县| 格尔木市| 晋宁县| 新乐市| 鄄城县| 平安县| 黄陵县| 桦川县| 海丰县| 巴里| 华坪县| 乐清市| 昂仁县| 时尚| 莱西市| 迁西县| 灯塔市| 义乌市|