AFNetworking读取和设置cookie的解决方案

来源:互联网 发布:linux压缩文件命令 编辑:程序博客网 时间:2024/05/22 12:22

今天在使用AFNetworking的时候需要使用cookie,查了一些资料后,了解了AFNetworking使用cookie的方法,在这里分享给大家。

实际上AFNetworking中并没有专门针对cookie封装的代码,但是由于它底层使用的是NSURLRequest,所以可以通过NSHTTPCookieStorage来操作cookie,读取和保存cookie的代码如下:

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:kServerAddress]];NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUserDefaultsCookie];
设置cookie的代码如下: 
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie];if([cookiesdata length]) {    NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];    NSHTTPCookie *cookie;    for (cookie in cookies) {        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];    }}
注意如下两点: 

1. 通过以上方法保存cookie,即可实现在退出程序,下一次进入的时候不用登录而再次使用cookie

2. 通过以上方法设置的cookie,通过webview的loadRequest方法load NSURLRequest时可以共用cookie。

删除cookie:

NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie];if([cookiesdata length]) {    NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];    NSHTTPCookie *cookie;    for (cookie in cookies) {        [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];    }}


0 0
原创粉丝点击