iOS AFNetworking中cookie的读取与设置

参考: http://blog.csdn.net/zhaoxy_thu/article/details/20532879

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

读取及保存cookie:

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:[BESTHttpClient sharedClient].url_login]];
NSData *cookieData = [NSKeyedArchiver archivedDataWithRootObject:cookies];
[[NSUserDefaults standardUserDefaults] setObject:cookieData forKey:BEST_LOGIN_COOKIE];

log:(cookie的日志样式)

cookies -- (
            <NSHTTPCookie version:0 name:"csrftoken" value:"AX5Xde7MbbOCDPJsCmhYl8RmPK3M4YMB" expiresDate:2017-08-10 05:16:54 +0000 created:2016-08-11 05:16:54 +0000 sessionOnly:FALSE domain:"192.168.1.47" path:"/" isSecure:FALSE>,
            <NSHTTPCookie version:0 name:"sessionid" value:"m675fhggawh3w18vmmujjwb67kyr9ook" expiresDate:2016-09-10 05:16:54 +0000 created:2016-08-11 05:16:54 +0000 sessionOnly:FALSE domain:"192.168.1.47" path:"/" isSecure:FALSE>,
            )

删除cookie:

NSData *cookieData = [[NSUserDefaults standardUserDefaults] objectForKey:BEST_LOGIN_COOKIE];
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookieData];
NSLog(@"cookies - %@", cookies);
for (NSHTTPCookie *cookie in cookies) {
   [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}

设置cookie:

NSData *cookieData = [[NSUserDefaults standardUserDefaults] objectForKey:BEST_LOGIN_COOKIE];
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookieData];
for (NSHTTPCookie *cookie in cookies) {
   [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}

注:

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

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

时间: 2024-10-20 02:26:01

iOS AFNetworking中cookie的读取与设置的相关文章

IOS webview中cookie的读取与保存-b

Cookie 的读取 将它放在 webViewDidFinishLoad 开始后执行 NSArray *nCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];NSHTTPCookie *cookie; for (id c in nCookies) { if ([c isKindOfClass:[NSHTTPCookie class]]){ cookie=(NSHTTPCookie *)c; NSLog(@"%@: %

iOS AFNetworking中cookie重定向

// 1. 取出需要同步的url (登录请求中返回的重定向地址)BESTHttpItem *httpItem = [BESTHttpHelper sharedHelper].curHttpItem;NSString  *url = [NSString stringWithFormat:@"%@/#/login", httpItem.frontend_addr]; // 2. 取出当前的headerFieldsNSDictionary *headerFields = [NSHTTPCoo

iOS开发WKWebView Cookie的读取与写入,与UIWebView的Cookie共享

NSHTTPCookieStorage和NSHttpCookie NSHTTPCookieStorage 实现了一个管理Cookie的单例对象(只有一个实例),每个Cookie都是NSHTTPCookie类的实例,做为一个规则,Cookie在所有应用 之间共享并在不同进程之间保持同步.Session Cookie(一个isSessionOnly方法返回YES的Cookie)只能在单一进程中使用. UIWebView Cookie 同一个应用,不同UIWebView之间的Cookie是自动同步的.

iOS AFNetWorking中block执行完后再执行其它操作

需求:同时进行两次网络请求,网络请求是异步的,在网络请求成功后进行其它的操作.两个网络请求是这样,一个网络请求中block执行完之后,再进行其它操作,也是一样的原理,只是这时候不需要线程组了,只需要信号量.当然也适用于所有的block. 接下来就说下,在两次异步请求之后要做的操作. 利用线程组和信号量来完成,看代码 - (void)getData { NSString *appIdKey = @"8781e4ef1c73ff20a180d3d7a42a8c04"; NSString*

Django 中 cookie的使用

Cookie是浏览器在客户端留下的一段记录,这段记录可以保留在内存或者硬盘上.因为Http请求是无状态的,通过读取cookie的记录,服务器或者客户端可以维持会话中的状态.比如一个常见的应用场景就是登录状态.Django里面,对cookie的读取和设置很简单.Cookie本身的格式类似字典,因此可以通过request的key或者get获取:然后他的设置则是通过response对象的set_cookie设定; 如果要取消cookie,把过期时间设置为当前时间就行了. 获取Cookie: 1 2 3

iOS 7 教程:定制iOS 7中的导航栏和状态栏

目录(?)[-] iOS 7中默认的导航栏 设置导航栏的背景颜色 在导航栏中使用背景图片 定制返回按钮的颜 修改导航栏标题的字体 修改导航栏标题为图片 添加多个按钮 修改状态栏的风格 隐藏状态栏 总结 注:本文译自Customizing Navigation Bar and Status Bar in iOS 7 近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这

定制iOS 7中的导航栏和状态栏

本文转载至 http://www.cocoachina.com/industry/20131104/7287.html 跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也 “” 阅读器 近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这

iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)

当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你下次再访问这个站点时,NSURLRequest会拿着上次保存下来了的Cookie继续去请求.同样适用于ASIHTTPRequest,AFNetworking, Webview等,Cookie常用于一些基于认证的网络请求 认识下NSHTTPCookieStorageNSHTTPCookieStorag

iOS htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)

当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你下次再访问这个站点时,NSURLRequest会拿着上次保存下来了的Cookie继续去请求.同样适用于ASIHTTPRequest,AFNetworking, Webview等,Cookie常用于一些基于认证的网络请求 认识下NSHTTPCookieStorageNSHTTPCookieStorag