NSHTTPCookieStorage *myCookie = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [myCookie cookies]) {
NSLog(@"%@", cookie);
//需要将cookie保存下来,以便自动登录
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; //保存
}
将其保存再本地
GlobalShare *getShare = [GlobalShare getGlobalShare];
[Utils saveData:getShare.user to:kSaveUserInfo];
第二步 开启后 预先增加到缓存里
//设置cookie缓存
//寻找URL为HOST的相关cookie,不用担心,步骤2已经自动为cookie设置好了相关的URL信息
// NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:kWebSiteURL]]; //这里的HOST是你web服务器的域名地址
NSArray *cookies = self.getShare.user.webCookieArray;
// DLog(@"cookies:%d",cookies.count);
// DLog(@"cookies:%@",cookies);
// 比如你之前登录的网站地址是abc.com(当然前面要加http://,如果你服务器需要端口号也可以加上端口号),那么这里的HOST就是http://abc.com
//设置header,通过遍历cookies来一个一个的设置header
for (NSHTTPCookie *cookie in cookies){
// cookiesWithResponseHeaderFields方法,需要为URL设置一个cookie为NSDictionary类型的header,注意NSDictionary里面的forKey需要是@"Set-Cookie"
NSArray *headeringCookie = [NSHTTPCookie cookiesWithResponseHeaderFields:
[NSDictionary dictionaryWithObject:
[[NSString alloc] initWithFormat:@"%@=%@",[cookie name],[cookie value]]
forKey:@"Set-Cookie"]
forURL:[NSURL URLWithString:kWebSiteURL]];
//通过setCookies方法,完成设置,这样只要一访问URL为HOST的网页时,会自动附带上设置好的header
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:headeringCookie
forURL:[NSURL URLWithString:kWebSiteURL]
mainDocumentURL:nil];
再次试试 那些需要登录才能看到的网址吧 全部搞定了
}