使用AFNetwork 网络请求会自动设置cookie ,如:登陆问题时,请求网络会自动将cookie值加到请求里面。
请求的时候读取cookie值,将其值保存起来!
请求成功后将cookie 存到NSHTTPCookieStorage 单例模式
代码:
NSArray
*cookies = [[
NSHTTPCookieStorage
sharedHTTPCookieStorage
]
cookies
];
//将cookies归档
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject:[[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies]];
//用NSUserDefaults 保存数据
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
[userDefault setObject:cookiesData forKey:@"sessionCookies"];
[userDefault synchronize];
2.读出cookie值
第二次进入时!判断cookie值 用户是否存在并进入程序页面 读出cookie值
//读出cookie值
NSData *cookiedata = [[NSUserDefaults standardUserDefaults]objectForKey:@"sessionCookies"];
//判断 并反归档
if ([cookiedata length]) {
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiedata];
NSHTTPCookie *cookie;
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiedata];
NSHTTPCookie *cookie;
for (cookie in cookies) {
//添加进入NSHTTPCookieStorage里面
[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookie];
}
}
}
1.完成这两步之后,保存cookie,即可实现在退出程序,下一次进入的时候不用登录而再次使用cookie
2 .通过以上方法设置的cookie,通过webview的loadRequest方法load NSURLRequest时可以共用cookie