前言:有登录功能的app会使用到cookies或session来记录登录状态。如果登录过后,调用其他接口显示还是未登录,除了服务器端需要排查相关原因外,客户端也需要确保cookies没有被删掉。
查看cookies相关信息:
NSArray * cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"服务器地址"]];
for (NSHTTPCookie * cook in cookies) {
NSLog(@"cook:%@",cook.description);
}
删除cookies:
[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:<#(NSHTTPCookie *)#>
设置指定的cookies:
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"username" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"rainbird" forKey:NSHTTPCookieValue];
[cookieProperties setObject:@"cnrainbird.com" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"cnrainbird.com" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];