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

iOS的cookie认证登陆

2016-04-02 19:28 369 查看
NSHTTPCookieStorage *myCookie = [NSHTTPCookieStorage sharedHTTPCookieStorage];

for (NSHTTPCookie *cookie in [myCookie cookies]) {

NSLog(@"%@", cookie);

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; // 保存

}

// 寻找URL为HOST的相关cookie,不用担心,步骤2已经自动为cookie设置好了相关的URL信息

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://115.29.43.2/api/default"]]; // 这里的HOST是你web服务器的域名地址

// 比如你之前登录的网站地址是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:@"Cookie"]

forURL:[NSURL URLWithString:@"http://115.29.43.2/api/login"]];

// 通过setCookies方法,完成设置,这样只要一访问URL为HOST的网页时,会自动附带上设置好的header

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:headeringCookie

forURL:[NSURL URLWithString:@"http://115.29.43.2/api/login"]

mainDocumentURL:nil];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: