AFNetworking读取和设置cookie的解决方案
2016-03-02 15:50
337 查看
今天在使用AFNetworking的时候需要使用cookie,查了一些资料后,了解了AFNetworking使用cookie的方法,在这里分享给大家。
实际上AFNetworking中并没有专门针对cookie封装的代码,但是由于它底层使用的是NSURLRequest,所以可以通过NSHTTPCookieStorage来操作cookie,读取和保存cookie的代码如下:
设置cookie的代码如下:
注意如下两点:
1. 通过以上方法保存cookie,即可实现在退出程序,下一次进入的时候不用登录而再次使用cookie
2. 通过以上方法设置的cookie,通过webview的loadRequest方法load NSURLRequest时可以共用cookie。
删除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]; } }
相关文章推荐
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- Android学习历程18-SeekBar的简单使用
- 比较字符串CompareTo的用法及注意
- OpenWrt目录结构简介
- BIT2014级软件学院程序设计-14 比赛记分问题
- Android Studio编译好的apk放在哪里?
- 二维数组的查找 剑指offer
- ARC和MRC的混合开发
- 更简单的获取时间的方法
- C++第一次实验
- [理解leetcode解法]264. Ugly Number II
- webView清除缓存
- C++第一次实验
- Spring MVC 解读——@Autowired、@Controller、@Service从原理层面来分析
- AC自动机模板
- 迭代器
- Cordova 系列之Mac OS 环境配置
- MongoDB添加用户
- json 语法
- RNN 入门教程 Part 4 – 实现 RNN-LSTM 和 GRU 模型