iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)
来源:互联网 发布:教育视频网站知乎 编辑:程序博客网 时间:2024/05/30 04:26
转载:http://www.skyfox.org/ios-url-request-cookie.html
你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你下次再访问这个站点时,NSURLRequest会拿着上次保存下来了的Cookie继续去请求。
同样适用于ASIHTTPRequest,AFNetworking, Webview等,Cookie常用于一些基于认证的网络请求
认识下NSHTTPCookieStorage
NSHTTPCookieStorage 实现了一个管理cookie的单例对象(只有一个实例),每个Cookie都是NSHTTPCookie类的实例,最为一个规则,Cookie在所有应用之间共享并在不同进程之间保持同步。Session Cookie(一个isSessionOnly方法返回YES的Cookie)只能在单一进程中使用。
Cookie
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器或者客户端),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站地址时就发送该Cookie给服务器
HTTP header
HTTP header中包含HTTP请求与响应的操作参数. header属性定义了所传输数据的各种特性. header属性以属性名开始,以冒号结尾,最后是属性值.属性名及值会因应用的不同
一.iOS htttp网络请求Cookie的读取与写入:
Cookie必然会通过HTTP的Respone传过来,并且Cookie在Respone中的HTTP header中。不管是什么请求框架,必然会存在Respone对象,比如AFNetworking2.x的operation.response,AFNetworking3.x的task.response等等。。。。
1.原生NSURLConnection写法
2.AFNetworking 写法
二.清空Cookie
三.手动设置Cookie 手动设置的Cookie不会自动持久化到沙盒
request还可以这样设置个Cookie
四.Cookie的本地缓存策略
五.Cookie的持久化存储
1.服务器端设置Cookie,以PHP为例
语法
如果服务器设置了Cookie失效时间expiresDate ,sessionOnly:FALSE会被持久化到文件中,kill掉后系统自动保存,下次启动app会自动加载.binarycookies中的Cookies,以下是一条Cookie输出
持久化到了文件中,地址是 沙盒的 /Library/Cookies/org.skyfox.iOS-Cookie.binarycookies
使用终端执行 BinaryCookieReader.py脚本 解析 org.skyfox.iOS-Cookie.binarycookies 结果如下:
2.app端手动存储Cookie
如果没设置Cookie失效时间expiresDate:(null),sessionOnly:true,kill掉后系统不会自动保存Cookie,如果想持久化Cookie 模仿浏览器存住Cookie,使用NSUserDefaults存下即可,以下是一条Cookie输出
手动保存
Demo地址:https://github.com/shaojiankui/iOS-Cookie
相关链接:
iOS开发WKWebView Cookie的读取与写入,与UIWebView的Cookie共享 - 天狐博客
- iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)
- iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)
- iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- os htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- 【IOS学习】 ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
- iOS Cookie学习(NSHTTPCookieStorage的使用)
- iOS Cookie学习(NSHTTPCookieStorage的使用)
- Cookie 的写入与读取
- Cookie 的写入与读取
- Cookie 的写入与读取
- cookie的写入与读取
- ..net cookie的写入与读取
- 5. Longest Palindromic Substring 题解
- Zookeeper实例原生API--创建会话(包含权限信息)
- [bzoj1179][Apio2009]Atm Tarjan+spfa
- 设计模式(17)-Template Method 模板方法模式
- ios中正则表达式
- iOS HTTP网络请求Cookie的读取与写入(NSHTTPCookieStorage)
- 第40课: CacheManager彻底解密:CacheManager运行原理流程图和源码详解
- 自定义view之动态圆形进度条
- C++学习:友元函数与友元类
- latex pgfplot 绘图
- 自己写的Javascript
- npm突然就Segmentation fault的解决方法
- Python中WindowsError问题
- POJ 1988 Cube Stacking 笔记