对于某些奇葩的接口,可能会带有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]; } }