对于某些奇葩的接口,可能会带有cookie值,带着cookie值去请求某个接口其实就是带着登录状态去请求某个接口,
在Object-C中该如何取出和设置cookie值呢?cookie值位于请求头或者响应头里面,其实苹果网络框架中对cookie做了处理了,比如你从某个请求中获得了cookie,那么在接下来的请求中都会带上这个cookie,所以大部分请求下你不需要去关心,但是在某些请求下,可能还是需要自己手动去设置:设置的过程如下:
//从url中取出cookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:url]];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];
//保存在本地
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"loginCookie"];
//从本地中取出然后设置cookie
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"loginCookie"];
if([cookiesdata length]) {
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];
NSHTTPCookie *cookie;
for (cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
}