iOS中的cookie简介和其中的坑
2016-04-06 17:31
489 查看
1. 什么是cookie?
Cookie指某些网站为了辨别用户身份而储存在用户本地终端(ClientSide)上的数据(通常经过加密)。定义于RFC2109。为网景公司的前雇员LouMontulli在1993年3月所发明。在使用的时候,用户第一次登陆或者第一次和服务器连接,将会从服务器获取一次cookie。然后终端可能再给cookie中增加几个字段,然后存储在本地。
然后每次访问网页的时候,客户端会把Cookie发送给服务器。
实际上,在iOS系统中,cookie的数据形式是字典NSDictionary,一个键值对应一个参数。
2.iOS中对cookie的操作
iOS提供了两个类,用于操作cookie:1. NSHTTPCookie 2. NSHTTPCookieStorage
NSHTTPCookieStorage是一个单例,存储管理所有的cookie。一个NSHTTPCookie对象是一个cookie。可以理解为NSHTTPCookieStorage管理的目标就是NSHTTPCookie。
关于这两个类的具体讲义见:点击打开链接
还是比较详细的。
下面上几段示例代码:
存储cookie:
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:[NSHTTPCookie cookieWithProperties:properties]];properties是一个字典。
获取cookie:
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; for (NSHTTPCookie *cookie in cookies) { NSDictionary *dict = cookie.properties; NSLog(@"%@",dict); }
清除cookie:
+(void) deleteCookie { NSHTTPCookie *cookie; NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [cookieJar cookies]) { [cookieJar deleteCookie:cookie]; } }
3.cookie使用时的一个坑
cookie的使用,是与本地时间有关系的,因为它有一个有效期的概念。最近项目中发现手动设置手机时间后,app切换账户出现了一些问题。
然后在解决问题过程中发现,把手机时间手动向前设置(设置为前几天的某一天),微信和脉脉也出现了bug。
微信的朋友圈所有动态都显示1分钟前发布,脉脉则是刷不出新的动态。
查了很多资料,最终无解。
如果有哪位读者明白这个问题,请赐教!
相关文章推荐
- IOS textField 输入个数限制
- iOS(使用pch文件导入头文件方法) 不用再import 这个pch文件就可以使用
- iOS开发------本地存储-NSKeyedArchiver & NSKeyedUnarchiver(归档)
- MLeaksFinder:精准 iOS 内存泄露检测工具
- ios之TableViewCell重用机制避免重复显示问题
- IOS contentOffset该如何理解
- iOS获取自1970年毫秒数
- ios 实用技巧
- iOS单例的最终写法
- ios关于viewController初始化赋值的问题,VC调用问题
- IOS AES 128 ECB PKCS7Padding 16进制加密解密
- ADIOS
- ios 访问版本信息 { "resultCount":0, "results": [] }
- iOS将多个第三方sdk打包成静态库
- IOS核心动画(Core Animation)
- iOS-随机数
- iOS学习笔记13 -- NSNotificationCenter
- 支付宝 iOS SDK 的简单使用
- XCText
- pe如何安装ios系统