iOS持久化Cookies与清空(可以用来保存登陆状态和退出登陆)
来源:互联网 发布:广州网络女装批发市场 编辑:程序博客网 时间:2024/06/05 18:15
//本地拿到存储的cookies
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"cookiesInfo" ofType:@"plist"];NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];NSArray *cookies = [data objectForKey:@"cookiesKey"];NSURL *url = [NSURL URLWithString:HomeBseUrl];if (cookies) { if (isClearCookies) { //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) { [storage deleteCookie:cookie]; } //缓存web清除 [[NSURLCache sharedURLCache] removeAllCachedResponses]; NSURLCache * cache = [NSURLCache sharedURLCache]; [cache removeAllCachedResponses]; [cache setDiskCapacity:0]; [cache setMemoryCapacity:0]; if (url) {//清除所有cookie NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url]; for (int i = 0; i < [cookies count]; i++) { NSHTTPCookie *cookie = (NSHTTPCookie *)[cookies objectAtIndex:i]; [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; } } }else{ //设置cookies NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary]; [cookieProperties setObject:[cookies objectAtIndex:0] forKey:NSHTTPCookieName]; [cookieProperties setObject:[cookies objectAtIndex:1] forKey:NSHTTPCookieValue]; [cookieProperties setObject:[cookies objectAtIndex:3] forKey:NSHTTPCookieDomain]; [cookieProperties setObject:[cookies objectAtIndex:4] forKey:NSHTTPCookiePath]; NSHTTPCookie *cookieuser = [NSHTTPCookie cookieWithProperties:cookieProperties]; [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookieuser]; } }
//设置完后再加载webView loadingrequest
//获取cookies 并持久化
NSHTTPCookie *cookie;NSHTTPCookieStorage *nCookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];NSArray *cookiesURL = [nCookies cookiesForURL:[NSURL URLWithString:HomeBseUrl]];for (id c in cookiesURL){ if ([c isKindOfClass:[NSHTTPCookie class]]) { cookie=(NSHTTPCookie *)c; if ([cookie.name isEqualToString:@"PHPSESSID"]) { NSNumber *sessionOnly = [NSNumber numberWithBool:cookie.sessionOnly]; NSNumber *isSecure = [NSNumber numberWithBool:cookie.isSecure]; NSArray *cookies = [NSArray arrayWithObjects:cookie.name, cookie.value, sessionOnly, cookie.domain, cookie.path, isSecure, nil]; NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"cookiesInfo" ofType:@"plist"]; NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; [data setObject:cookies forKey:@"cookiesKey"]; NSLog(@"________%@", data);//直接打印数据。 [data writeToFile:plistPath atomically:YES]; break; } }}
//如果存取不成功,可以新建一个名为cookiesInfo的plist文件
用的话自己调整一下存cookies 的地方 我目前在viewWilldisappear 和 应用程序退出时存的
阅读全文
0 0
- iOS持久化Cookies与清空(可以用来保存登陆状态和退出登陆)
- shiro退出登陆清空缓存实现
- Cookies+Session保存用户登陆状态
- 记住密码自动登陆的实现和退出时的登陆数据清空
- android保存文件到sd卡,读取和清空记录功能(可以用来保存用户名和密码)
- cookies的清空和保存
- Android学习笔记(十)--OKHttp持久化cookies实现模拟登陆
- 清空局域网计算机登陆用户名和密码
- mysql登陆与退出
- iOS 保持登陆状态
- sql 2008 清空登陆记录
- MVC实现登陆与退出登陆
- 登陆状态模板怎么控制返回地址(登录和退出)
- cookies可以跨域了~单点登陆(a.com.cn与b.com.cn可以共享cookies)
- session和cookies的清空
- session和cookies的清空
- 退出登陆
- 自动登录、记住我(保存登陆状态)实现
- 欢迎使用CSDN-markdown编辑器
- java面试
- 用canvas画能走的钟
- 正则表达式
- ios-GCD和NSOperation的区别
- iOS持久化Cookies与清空(可以用来保存登陆状态和退出登陆)
- HDU1116 欧拉回路 解题报告
- js生成六位验证码!
- 8.11新博客皮肤测试
- unity3d 2d游戏开发基础闲谈
- IE 关于X-UA-Compatible
- Android 电池管理
- 欢迎使用CSDN-markdown编辑器
- 5 种 IEEE 协议对比