ios cookie的使用

紧接上篇文章,cookie的概念:
http://blog.csdn.net/lee727n/article/details/77197910
cookie的基本使用流程,请参考代码:
访问网络的时候先更新cookie,把最新的cookie放到cookiestroage中,给后台。后台会用到你本地的cookie,这份cookie可能是空,也可能是登录成功后带有用户信息的cookie。

NSData *cookiesData = [[NSUserDefaults standardUserDefaults]objectForKey:kUserDefaultsCookie];
    if ([cookiesData length]) {
        NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData];
        NSHTTPCookie *cookie;
        for (cookie in cookies) {
            [[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookie];
        }

        NSLog(@"%@",[[NSHTTPCookieStorage sharedHTTPCookieStorage].cookies description]);

NSHTTPCookie是一个cookie的对象,而NSHTTPCookieStorage是存储cookie的地方,是个数据,可以放很多组cookie,接下来获取网络数据成功以后,保存cookie。注意这里说的保存cookie是保存到本地。紧接上一段代码。这里cookieStorage中的cookie已经是服务器重新返回的cookie了,可能是修改过的,也可能是服务器没进行处理的。总之这里放到不是我们刚才从本地放到storage中的那份cooke,是经过后台重新返回来的最新cookie。

   NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"set-cookie"];
    for (NSHTTPCookie *cookie in cookies) {
        NSLog(@"cookies 域名:%@ Name: %@", cookie.domain , cookie.name);
        NSLog(@"%@",cookie);
    }

cookie需要配合userdefault本地存储来使用。上述代码封装到网络解析类中,接下来我们就可以拿到cookie中的想要的信息,比如个人信息 我们拿到昵称

_userNameLB.text = [Tools returnCookieValueWithCookieName:@"_staff_no"];

封装方法如下:

+(NSString *)returnCookieValueWithCookieName:(NSString *)cookieName
{
    NSString * str = @"";
    NSData *cookiesData = [[NSUserDefaults standardUserDefaults]objectForKey:@"set-cookie"];
    if ([cookiesData length]) {
        NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData];

        for (NSHTTPCookie *cookie in cookies) {
                if ([cookie.name isEqualToString:cookieName]) {
                    str = cookie.value;
           }

       }

    }

    return str;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值