NSHTTPCookieStorage
在iOS中可以通过NSHTTPCookieStorage直接种cookie到指定的Domain下和读取指定Domain下的cookie内容。
设置cookie
NSMutableDictionary *cookiePropertiesUser = [NSMutableDictionary dictionary];
[cookiePropertiesUser setValue:@"domain" forKey:NSHTTPCookieDomain];
[cookiePropertiesUser setValue:[NSDate dateWithTimeIntervalSinceNow:60*60] forKey:NSHTTPCookieExpires];
[cookiePropertiesUser setValue:@"/" forKey:NSHTTPCookiePath];[cookiePropertiesUser setObject:@"cookieName" forKey:NSHTTPCookieName];
[cookiePropertiesUser setObject:@"cookieValue" forKey:NSHTTPCookieValue];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookiePropertiesUser];[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
注意:
1、上面的key需要都设置全才能种cookie成功。
2、设置同一个Domain下多个cookie值消需要多次执行上面代码。
3、设置多个Domain下的cookie就算cookie内容相同也要多次执行以上函数,原因就是字典中key的唯一性。
读取cookie
NSHTTPCookieStorage * sharedStore = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray * cookies = [sharedStore cookiesForURL:[NSURL URLWithString:BASE_URL]];
for (NSHTTPCookie * cookie in cookies) {
if ([cookie.name isEqualToString:@"xxx"]) {
NSLog(@"%@:%@",cookie.name,cookie.value);//打印指定的cookie的name和value
}else if ([cookie.name isEqualToString:@"xxx"]) {
[sharedStore deleteCookie:cookie];//删除指定的cookie
}
}