iOS--原生与h5交互之cookie方法封装

封装的工具类:

+(NSHTTPCookie*)cookieMakerWithName:(NSString*)name value:(NSString*)value Domain:(NSString*)domain path:(NSString*)path{
    if ([name isEqualToString:EMPTYSTRING] || [value isEqualToString:EMPTYSTRING]) {
        return nil;
    }
    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
    [cookieProperties setObject:name forKey:NSHTTPCookieName];
    [cookieProperties setObject:value forKey:NSHTTPCookieValue];
    [cookieProperties setObject:domain forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:domain forKey:NSHTTPCookieOriginURL];
    [cookieProperties setObject:path forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"1" forKey:NSHTTPCookieVersion];
    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    return cookie;
}

+(NSArray*)cookieMakerWithValueDic:(NSDictionary*)valueDic Domain:(NSString*)domain path:(NSString*)path{
    if ([valueDic isEqual:@{}]) {
        return nil;
    }
    NSMutableArray *cookieArray = [NSMutableArray array];
    for (NSString* key in valueDic) {
        NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
        [cookieProperties setObject:key forKey:NSHTTPCookieName];
        [cookieProperties setObject:[valueDic objectForKey:key] forKey:NSHTTPCookieValue];
        [cookieProperties setObject:domain forKey:NSHTTPCookieDomain];
        [cookieProperties setObject:domain forKey:NSHTTPCookieOriginURL];
        [cookieProperties setObject:path forKey:NSHTTPCookiePath];
        [cookieProperties setObject:@"1" forKey:NSHTTPCookieVersion];
        NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
        [cookieArray addObject:cookie];
    }
    
    return cookieArray;
}

工具的调用:

#pragma mark - setCookie
- (void)setCookie {
    
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSDictionary *cookieValueDic = [NSDictionary dictionaryWithObjectsAndKeys:
                                    @"value1",@"key1",
                                    @"value2",@"key2",
                                    @"value3",@"key3",
                                    nil];
    NSArray *cookieArray = [VATool cookieMakerWithValueDic:cookieValueDic Domain:self.urlHost path:@"/"];
    for (NSHTTPCookie *cookie in cookieArray) {
        [cookieStorage setCookie:cookie];
    }
    
    [self.webView reload];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,259评论 25 709
  • 1.面向对象三大特性 -封装性 -继承性 -多态性 2.什么是封装 封装性就是隐藏实现细节,仅对外公开接口。 3....
    梦夜繁星阅读 4,770评论 0 6
  • 从北京到福州,再到海口,我这次旅行的纬度跨度想想也算挺大的。出门前就对着衣柜和旅行箱左思右想,反复拿捏,但无奈出行...
    epiphanyLei阅读 1,697评论 0 0
  • 挪威随笔 如果形容一个国家岛屿之多为千岛之国,那么芬兰当之无愧,与芬兰相比,挪威被称为万岛之国,因为挪威的...
    宁资虎阅读 2,981评论 0 0
  • ‘’在生活里,你也要活得像个冠军。‘’ --摘自《人物-网球专访-李娜》
    FlowerKey花的钥匙阅读 1,589评论 0 0

友情链接更多精彩内容