iOS 中UIWebView的cookie

本文详细介绍了如何通过iOS应用中的NSHTTPCookieStorage模块获取Cookie,并从中提取UserID。包括Cookie的设置、获取、清除操作及注意事项,旨在帮助开发者理解和实现用户身份验证过程中的关键步骤。

有关cookie是什么,大家可以自行百度,本文我获得cookie的目的是得到一个userID。

下面的是代码。

- (void)getUserIDFromCookie
{
    NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:urlStr];
    
    NSEnumerator *enumerator = [cookies objectEnumerator];
    NSHTTPCookie *cookie;
    while (cookie = [enumerator nextObject]) {
        NSLog(@"%@,%@", [cookie name], [cookie value]);
    }
}        

 由此得到的cookie,大家可以根据cookie里面的内容进行遍历,来得到自己想要的值。

对于ios 来说 NSHTTPCookieStorage 会存储APP自身访问所有url的cookie,可以用domain为标志来获取自己所需要的cookie。需要注意的是,NSHTTPCookieStorage存储的cookie在过期后会自动删除,如用户手动调整时间超过期时间则系统也会自动删除,因此某些业务逻辑需要注意。

 

设置cookie:

- (void)setCookie{
    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
//    设置 cookie 的参数
    [cookieProperties setObject:@"cookie_user" forKey:NSHTTPCookieName];
    [cookieProperties setObject:uid forKey:NSHTTPCookieValue];
    [cookieProperties setObject:@"xxx.xxx.com" forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
    [cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
    
    NSHTTPCookie *cookieuser = [NSHTTPCookie cookieProperties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookieuser];
}

 

接下来说下清除所有cookie:

NSHTTPCookie *cookie;
NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) 
{  
  [sharedHTTPCookieStorage deleteCookie:cookie];
}
// 缓存 清除
[[NSURLCache sharedURLCache] removeAllCachedResponses];

 清除某个url下的cookie:

- (void)deleteCookie{
    NSHTTPCookie *cookie;
    
    NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    
    NSArray *cookieAry = [sharedHTTPCookieStorage cookiesForURL: [NSURL URLWithString:urlStr]];
    for (cookie in cookieAry){
        [sharedHTTPCookieStorage deleteCookie:cookie];
    }
}

 

参考文章:在UIWebView中设置cookie

转载于:https://www.cnblogs.com/peaker-wu/p/5326389.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值