前言
公司后台的一套接口要在网页和iOS上同时使用,网页那边有cookie,那么我们客户端也得想办法来用cookie了。比如:请求这个接口需要一个参数,把它怼到cookie里就不用以参数形式传进去了。
正文
cookie创建
注意点:有几个key是必须要设置的: NSHTTPCookiePath, NSHTTPCookieName, NSHTTPCookieValue,还有就是NSHTTPCookieOriginURL 和 NSHTTPCookieDomain一定要选一个。开始就因为没有设置NSHTTPCookiePath搞了半天
NSMutableDictionary *properties = [NSMutableDictionary dictionary];
[properties setObject:key forKey:NSHTTPCookieName];
[properties setObject:newValue forKey:NSHTTPCookieValue];
[properties setObject:domian forKey:NSHTTPCookieDomain];
[properties setObject:path forKey:NSHTTPCookiePath];
NSHTTPCookie *cookieuser = [NSHTTPCookie
cookieWithProperties:properties];
cookie获取
NSArray *array = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:urlString]];
for (NSHTTPCookie *cookie in array) {
NSLog(@"-----------cookiename: %@ cookieValue: %@ cookieDomin: %@",cookie.name,cookie.value,cookie.domain);
}
给指定url设置cookie
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"userId" forKey:NSHTTPCookieName];
[cookieProperties setObject:loginModel.userId forKey:NSHTTPCookieValue];
[cookieProperties setObject:networkAuthenModel.domain forKey:NSHTTPCookieDomain];
[cookieProperties setObject:networkAuthenModel.urlString forKey:NSHTTPCookiePath];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
cookie删除
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *tempArray = [NSArray arrayWithArray:[cookieStorage cookies]];
for (NSHTTPCookie *cookiej in tempArray) {
[cookieStorage deleteCookie:cookie];
}
结束语
今天喝水太多了,老是跑厕所。
参考来源 NSHTTPCookieStorage
网友评论