您的位置:首页 > 移动开发

Cookie 实现WebView自动登录

2016-04-18 09:56 351 查看
#import "ViewController.h"#import "AppDelegate.h"@interface ViewController ()@end@implementation ViewController@synthesize MyWebview;- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. NSURL * url
= [NSURL URLWithString:@"http://www.baidu.com"]; NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url]; NSArray*cookies=[[NSHTTPCookieStorage sharedHTTPCookieStorage]cookiesForURL:url]; // 设置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:url];// // // 通过setCookies方法,完成设置,这样只要一访问URL为HOST的网页时,会自动附带上设置好的header// [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:headeringCookie// forURL:url//
mainDocumentURL:nil];// // } NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; [request setHTTPMethod:@"POST"]; [request setHTTPShouldHandleCookies:YES]; [request setAllHTTPHeaderFields:headers]; [self.MyWebview loadRequest:request];
}-(void)webViewDidFinishLoad:(UIWebView *)webView{ NSArray *nCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSHTTPCookie *cookie; for (id c in nCookies) { if ([c isKindOfClass:[NSHTTPCookie class]]) { cookie=(NSHTTPCookie *)c; NSLog(@"%@:
%@", cookie.name, cookie.value); [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; } } }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: