二、iOS中进行Cookie管理的两个类 iOS中进行HTTP网络请求Cookie管理主要由两个类负责,一个类是NSHTTPCookieStorage类,一个是NSHTTPCookie类。 对象 @property (nullable , readonly, copy) NSArray<NSHTTPCookie *> *cookies; //手动设置一条Cookie数据 - (void)setCookie :(NSHTTPCookie *)cookie; //删除某条Cookie信息 - (void)deleteCookie:(NSHTTPCookie *)cookie; //删除某个时间后的所有Cookie 信息 iOS8后可用 - (nullable NSArray<NSHTTPCookie *> *)cookiesForURL:(NSURL *)URL; //获取某个特定URL的所有Cookie数据 - *> *)cookies; //从指定的响应头和URL地址中解析出Cookie数据 + (NSArray<NSHTTPCookie *> *)cookiesWithResponseHeaderFields
sharedHTTPCookieStorage]; NSArray* nCookies = [nCookies cookiesForURL:[NSURL URLWithString:urlStr]].copy; for(NSHTTPCookie *cookie in nCookies) { if([cookie isKindOfClass:[NSHTTPCookie class]]) { [cookieProperties setObject:[cookies objectAtIndex:4]forKey:NSHTTPCookiePath]; NSHTTPCookie *cookieuser = [NSHTTPCookie cookieWithProperties:cookieProperties]; [[NSHTTPCookieStorage
5.NSHTTPCookieStorage、NSHTTPCookie NSHTTPCookieStorage与NSHTTPCookie用于持久化的存储HTTP请求的Cookie数据。
errors; [[NSFileManager defaultManager] removeItemAtPath:cookiesFolderPath error:&errors]; 查看cookie NSHTTPCookie
stringWithFormat:@""]; NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie
跳转不会带上 Response 中 Set-Cookie 的值 可以使用 iOS11 的新 API 对 WKWebView 进行 cookie 的设置,利用以下代码对 Cookie 进行持久化设置 NSHTTPCookie 示例代码: WKWebViewConfiguration *conf = [WKWebViewConfiguration new]; // 在初始化方法之前,设置 cookie NSHTTPCookie *cookie = [NSHTTPCookie cookieWithPropertie:...]; [[WKWebsiteDataStore defaultDataStore].httpCookieStore WKWebView *wk = [[WKWebView alloc] initWithFrame:CGRectZero configuration:conf]; // 在初始化方法之后,设置 cookie NSHTTPCookie *cookie = [NSHTTPCookie cookieWithPropertie:...]; [[WKWebsiteDataStore defaultDataStore].httpCookieStore
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie
dateWithTimeIntervalSinceNow: 60*60] forKey: NSHTTPCookieExpires]; [cookieProperties setValue:@"/" forKey: NSHTTPCookiePath]; NSHTTPCookie *newcookie = [[NSHTTPCookie alloc] initWithProperties: cookieProperties]; [[NSHTTPCookieStorage sharedHTTPCookieStorage
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie
:@""]; NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie
WKHTTPCookieStore 管理与特定的WKWebsiteDataStore关联的HTTP cookie的对象 获取所有的cookies - (void)getAllCookies:(void (^)(NSArray<NSHTTPCookie *> *))completionHandler; 设置一个cookie - (void)setCookie:(NSHTTPCookie *)cookie completionHandler:(void (^)(void))completionHandler; 移除一个cookie - (void)deleteCookie:(NSHTTPCookie *)cookie completionHandler