iOS 关于UIWebView设置cookie

最近在做一个项目,里面用到webview进行处理一些界面, 但是前提是需要在登录状态下.所以就处理一下方法



1. 在请求的时候进行cookie注入

// 在请求网站之前先把所有的cookie删除,然后注入需要的cookie

[self deleteCookie], [self setCookie]; 

[self.webView loadRequest:request];

2.在开始加载的时候进行cookie注入

//webView代理   开始加载

- (void)webViewDidStartLoad:(UIWebView*)webView{

NSLog(@"已经开始加载");

[self deleteCookie], [self setCookie];

}

设置cookie方法

//设置cookie

- (void)setCookie {

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];

[cookieProperties setObject:@"PHPSESSID" forKey:NSHTTPCookieName];

[cookieProperties setObject:@"sessionID" forKey:NSHTTPCookieValue];

[cookieProperties setObject:@"www.baidu.com" forKey:NSHTTPCookieDomain];

[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];

[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:30*24*60*60] forKey:NSHTTPCookieExpires];

NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

}


清除cookie方法

//清除cookie

- (void)deleteCookie{

NSHTTPCookie *cookie;

NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];

// 获取到www.baidu.com下的cookies   

NSArray *cookieAry = [cookieJar cookiesForURL: [NSURL URLWithString:@"www.baidu.com"]];

for (cookie in cookieAry) {

[cookieJar deleteCookie: cookie];

}

// 获取到所有的cookies

NSArray *cookieAry2 = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];

for (cookie in cookieAry2) {

[cookieJar deleteCookie: cookie];

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容