Cookie 实现WebView自动登录

#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]; } } }

你可能感兴趣的:(Cookie 实现WebView自动登录)