一篇文章搞定iOS的Cookie存取
发布日期:2021-05-10 03:01:25 浏览次数:20 分类:精选文章

本文共 5331 字,大约阅读时间需要 17 分钟。

iOS Cookie���������������������

Cookie������

Cookie���������������������������������������rowsers���������������������������������Web���������������Set-Cookie���Set-Cookie2 HTTP������������Cookie������������������������Cookie���������Cookie���������������Cookie������������������������������������������Cookie������������������������������������������������������0���Netscape Cookies������������1���RFC 2965���������������������������������������������0���

������

���������iOS���������������������������WebView������������������������Cookie���Html5������������������������������������������������������������Cookie������������������

UIWebView

UIWebView���iOS������������������WebView���������������������������������������������������Cookie������������������������������������������������������Cookie���������������������

+ (void)saveCookies {    NSMutableDictionary *fromappDict = [NSMutableDictionary dictionary];    [fromappDict setObject:@"fromapp" forKey:NSHTTPCookieName];    [fromappDict setObject:@"ios" forKey:NSHTTPCookieValue];    [fromappDict setObject:kDomain forKey:NSHTTPCookieDomain];    [fromappDict setObject:kDomain forKey:NSHTTPCookieOriginURL];    [fromappDict setObject:@"/" forKey:NSHTTPCookiePath];    [fromappDict setObject:@"0" forKey:NSHTTPCookieVersion];        NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:fromappDict];    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];    [cookieStorage setCookie:cookie];}

UIWebView������������������������Cookie������������Html5���������������������������������������������������������������������������������������������������������������������

WKWebView

WKWebView������UIWebView���������������������������������������������������������������������������������������Cookie���������������������������������WKWebView���Cookie���������������

1. ���������������Cookie

WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init];webConfig.preferences = [[WKPreferences alloc] init];webConfig.preferences.minimumFontSize = 10;webConfig.preferences.javascriptEnabled = YES;webConfig.preferences.javaScriptCanOpenWindowsAutomatically = NO;webConfig.processPool = [[WKProcessPool alloc] init];NSString *cookieValue = @"document.cookie = 'fromapp=ios';document.cookie = 'channel=appstore';";WKUserContentController *userContentController = WKUserContentController.new;WKUserScript *cookieScript = [[WKUserScript alloc] initWithSource:cookieValue injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];[userContentController addUserScript:cookieScript];webConfig.userContentController = userContentController;WKWebView *wkWebView = [[WKWebView alloc] initWithFrame:frame configuration:webConfig];wkWebView.UIDelegate = wkWebView;wkWebView.navigationDelegate = wkWebView;

2. ������URL���������Cookie

���������������������URL������������������������������ Cookie ���������������������������

- (void)loadRequestWithUrlString:(NSString *)urlString {    NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];    NSMutableString *cookieValue = [NSMutableString stringWithFormat:@""];    NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];        for (NSHTTPCookie *cookie in [cookieJar cookies]) {        [cookieDic setObject:cookie.value forKey:cookie.name];    }        for (NSString *key in cookieDic) {        NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];        [cookieValue appendString:appendString];    }        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];    [request addValue:cookieValue forHTTPHeaderField:@"Cookie"];    [self loadRequest:request];}

3. AFNetworking���������

���AFNetworking���������Cookie������������������������������������������������������

AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];NSMutableString *cookieValue = [NSMutableString stringWithFormat:"fromapp=ios;"];NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];for (NSHTTPCookie *cookie in [cookieJar cookies]) {    [cookieDic setObject:cookie.value forKey:cookie.name];}for (NSString *key in cookieDic) {    NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];    [cookieValue appendString:appendString];}[operationManager.requestSerializer setValue:cookieValue forHTTPHeaderField:@"Cookie"];NSDictionary *paraDict = @{    @"key": @"value"};NSString *urlStr = [NSString stringWithFormat:@"%@%@", kHostIP, kPath];[operationManager POST:urlStr parameters:paraDict success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {    NSLog(@"responseObject -> %@", responseObject);} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {    NSLog(@"error -> %@", error);}];

������

���������������������iOS���Cookie���������������������������UIWebView���WKWebView������������������AFNetworking������������������������������������������������������������������������������ Cookies������������������������������������������������������������������������������������������������������������������������������������624212887 ������������

上一篇:iOS中常用的宏定义总结
下一篇:整理BAT等100家企业iOS面试题,打造最受名企欢迎的iOS程序员

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月01日 10时18分58秒