cookie
来源:互联网 发布:剪裁照片的软件 编辑:程序博客网 时间:2024/06/03 18:25
#import <Foundation/Foundation.h>
@interface CookieTool : NSObject
//cookie
@property (nonatomic,strong)NSString * cookie;
//单例
+ (CookieTool *)defaultCookieTool;
//获取cookie
- (void)getAndSaveCookie;
//删除cookie
- (void)deleteCookie;
- (void)deleateUserDefaul;
@end
#import "CookieTool.h"
@implementation CookieTool
static CookieTool *cookieTool = nil;
+ (CookieTool *)defaultCookieTool
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
cookieTool = [[CookieTool alloc] init];
});
return cookieTool;
}
//登陆获取cookie
- (void)getAndSaveCookie{
//获取cookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
NSMutableDictionary *properties = [NSMutableDictionary dictionary];
MYLog(@"%lu",(unsigned long)cookies.count);
if (cookies.count>0) {
NSHTTPCookie *tempCookie = cookies[0];
//打印获得的cookie
NSLog(@"getCookie:1 %@", tempCookie);
MYLog(@"%@",tempCookie.name);
MYLog(@"====%@",properties);
MYLog(@"%@",properties[@"cookie"]);
}
for (NSHTTPCookie *tempCookie in cookies) {
//打印获得的cookie
MYLog(@"%@",tempCookie.name);
if([tempCookie.name isEqualToString:@"cookieId"]){
[self deleateUserDefaul];
NSLog(@"getCookie:1 %@,%@", tempCookie.value,tempCookie.name);
[properties setValue:tempCookie.value forKey:@"cookie"];
//存储归档后的cookie
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject: properties forKey: @"Cookie"];
}
}
/*
* 把cookie进行归档并转换为NSData类型
* 注意:cookie不能直接转换为NSData类型,否则会引起崩溃。
* 所以先进行归档处理,再转换为Data
*/
// NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
//存储归档后的cookie
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject: properties forKey: @"Cookie"];
}
#pragma mark 删除cookie
- (void)deleteCookie
{
NSLog(@"============删除cookie===============");
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
//删除cookie
for (NSHTTPCookie *tempCookie in cookies) {
[cookieStorage deleteCookie:tempCookie];
}
//把cookie打印出来,检测是否已经删除
NSArray *cookiesAfterDelete = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
for (NSHTTPCookie *tempCookie in cookiesAfterDelete) {
NSLog(@"cookieAfterDelete: %@", tempCookie);
}
NSLog(@"\n");
}
- (void)deleateUserDefaul{
[[NSUserDefaults
standardUserDefaults] removeObjectForKey:@"Cookie"];
[[NSUserDefaults
standardUserDefaults] synchronize];
}
- (NSString *)cookie{
NSUserDefaults * user = [NSUserDefaults standardUserDefaults];
NSDictionary *cookieId = [ user objectForKey:@"Cookie"];
_cookie = cookieId[@"cookie"];
return _cookie;
}
请求时设置请求头
NSString *cookie = [NSString stringWithFormat:@"cookieId=%@",[CookieTool defaultCookieTool].cookie];
[manager.requestSerializer setValue:cookie forHTTPHeaderField:@"Cookie"];
- Cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- Cookie
- Cookie
- Cookie
- cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- cookie
- Could not delete F:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/platfor
- 文件存储与数据返回错误总结
- JavaScript----增加删除修改
- angularjs promise理解与使用
- STL————-unique算法
- cookie
- instr函数
- [交易策略]MACD金叉买死叉卖模型回测
- 51nod 1105
- 富文本编辑器
- mongodb下载安装
- 跨域
- 解析json
- 字节顺序(byte order)