美文网首页
AFN获取cookie与设置cookie

AFN获取cookie与设置cookie

作者: Superman168 | 来源:发表于2018-04-28 17:39 被阅读0次
登录获取 Cookie
            NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:BASE_URL]];
            NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];
            [[NSUserDefaults standardUserDefaults] setObject:data forKey:kUserDefaultsCookie];

// 设置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];
            }
        }  

项目需求,我是这样获取的:

                NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:BASE_URL]];
                if (cookies && cookies.count>0) {
                    NSHTTPCookie *cookieInfo = [cookies firstObject];
                    NSString *cookieStr = cookieInfo.value;
                    if (cookieStr && cookieStr.length>11) {
                        NSString *cookie = [cookieStr substringFromIndex:11];
                        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookie];
                        [[NSUserDefaults standardUserDefaults] setObject:data forKey:kUserDefaultsCookie];
                    }
                }

这样设置的

        // 设置cookie
        NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie];
        if([cookiesdata length]) {
            NSString *cookie = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];            
            [manager1.requestSerializer setValue:cookie forHTTPHeaderField:@"Cookie"];
            [manager2.requestSerializer setValue:cookie forHTTPHeaderField:@"Cookie"];
        }

但是跟后台还有点出入,有用户权限的无法访问。

后又改为这样:

获取(其实和开始的获取方式是一样的):

        NSInteger statusCode = response.statusCode;
        NSDictionary *allHeaders = response.allHeaderFields;
        NSString *cookie = [allHeaders NotNSNullobjectForKey:@"Set-Cookie"];
        if (cookie && cookie.length>0) {
            NSLog(@"请求的urlStr=%@",urlStr);
            NSString *sessionId = [cookie componentsSeparatedByString:@";"].firstObject;
            IDBSessionId = sessionId;
            NSLog(@"返回头Cookie--%@--状态码%ld",allHeaders,(long)statusCode);
        }

设置:

    // 设置cookie
    NSString *cookie = IDBSessionId ? IDBSessionId : @"";
    [manager1.requestSerializer setValue:cookie forHTTPHeaderField:@"Set-Cookie"];

不知道哪一款适合你? 😜

相关文章

  • AFN获取cookie与设置cookie

    登录获取 Cookie // 设置cookie 项目需求,我是这样获取的: 这样设置的 但是跟后台还有点出入,有用...

  • C#设置Cookie

    设置Cookie 获取Cookie 清除Cookie

  • Flask中cookie的使用

    设置cookie 获取cookie,和删除cookie

  • cookie

    //设置cookie //获取cookie //封装cookie调用 以对象的形式获取 //key // 设置有效...

  • js存取cookie数据

    设置cookie 获取cookie数据

  • Cookie

    设置cookie 获取cookie 封装cookie调用 以对象的形式获取 key 设置有效期:

  • 玩转服务端cookie

    获取服务端cookie 获取客户端cookie 客户端设置cookie 删除cookie cookie策略

  • js操作cookie

    JS操作cookie Jquery操作cookie 设置cookie 获取cookie 删除cookie 附件 j...

  • js cookie

    js设置cookie js获取cookie //使用方式: 给cookie设置终止日期 例如:如果要将cookie...

  • 获取返回URL

    Java设置Cookie Java获取Cookie Js获取Cookie Java方法调用 Js方法调用

网友评论

      本文标题:AFN获取cookie与设置cookie

      本文链接:https://www.haomeiwen.com/subject/eqoglftx.html