UIWebView与AFN网络请求url时 request请求添加cookie的方法

UIWebView中request请求添加cookie

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *URL = @"http://okcs.dev.cnki.net/KRD/Mobile/Redirect/Detail?Id=097556d3-d046-48c1-9fd4-65fcac7e1ea1&sourcetype=PERSONALBLOG";
    NSString *URL1 = @"http://okcs.dev.cnki.net/KRD/Mobile/Redirect/Detail?Id=1476B3F3551A4DA49B16E5450F72227C&sourcetype=SHIPIN";
    //    URL = @"https://www.baidu.com";
    self.view.backgroundColor = [UIColor whiteColor];
    [self reloadWebView:URL1];
    [self.view addSubview:self.myWebView];
}
- (void)reloadWebView:(NSString *)url
{
    NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
    [dict setObject:@"LID" forKey:NSHTTPCookieName];
    [dict setObject:[LoginModel defalustLoginModel].Access_token forKey:NSHTTPCookieValue];
    [dict setObject:@"192.168.105.26" forKey:NSHTTPCookieDomain];
    [dict setObject:@"/" forKey:NSHTTPCookiePath];
    NSHTTPCookie *cookie2 = [NSHTTPCookie cookieWithProperties:dict];
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie2];
    NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"okms.ios", @"UserAgent", nil];
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];
    NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];
    NSMutableString *cookieValue = [NSMutableString stringWithFormat:@""];
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (NSHTTPCookie *cookie in [cookieStorage  cookies]) {
        [cookieDic setObject:cookie.value forKey:cookie.name];
    }
    for (NSString *key in cookieDic) {// cookie重复,先放到字典进行去重,再进行拼接
        NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];
        [cookieValue appendString:appendString];
    }
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
    [request addValue:cookieValue forHTTPHeaderField:@"Cookie"];
    [self.myWebView loadRequest:request];
}

在这里插入图片描述
AFN中request请求添加cookie的方法

// 设置cookie
  NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
    [dict setObject:@"AID" forKey:NSHTTPCookieName];
    [dict setObject:@"111" forKey:NSHTTPCookieValue];
    [dict setObject:@".dev.cnki.net" forKey:NSHTTPCookieDomain];
    [dict setObject:@"/" forKey:NSHTTPCookiePath];
    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:dict];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    
    NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];
    NSMutableString *cookieValue = [NSMutableString stringWithFormat:@""];
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

    for (NSHTTPCookie *cookie in [cookieStorage  cookies]) {
        [cookieDic setObject:cookie.value forKey:cookie.name];
        // 注意此处,如果没有添加下面两句,那么就看不到请求cookie中有domain和path
        [cookieDic setObject:cookie.domain forKey:NSHTTPCookieDomain];
        [cookieDic setObject:cookie.path forKey:NSHTTPCookiePath];
        // 还可以设置过期时间和版本号
        //  [cookieDic setObject:[NSNumber numberWithInt:cookie.version] forKey:NSHTTPCookieVersion];
  // [cookieDic setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];


    }
  
    for (NSString *key in cookieDic) {// cookie重复,先放到字典进行去重,再进行拼接
        NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];
        [cookieValue appendString:appendString];
    }
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    // 将拼写好的cookieValue放到请求头的Cookie中
    [manager.requestSerializer setValue:cookieValue forHTTPHeaderField:@"Cookie"];

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值