给NSURLRequest 加点cookie

最近项目中碰到的需求是,在混合 开发中,给H5 的请求加点cookie
怎么调试,怎么塞,怎么验证呢;

这次我们拿 https://www.baidu.com 来做实验,插入我自己的名字 拼音 pengchao 和 this is my cookie ;

实验结果如图:
给NSURLRequest 加点cookie_第1张图片
第一步,允许你的iphone 或者 ios simluator 允许开发者调试,怎么做呢;

iphone -> 设置 -> Safari -> 高级 - >javaScript 和 web检查器 勾选;

第二步,找到 mac 的 Safari 浏览器,打开偏好设置,找到最下方的,在菜单栏中显示"开发"菜单;
给NSURLRequest 加点cookie_第2张图片
第三步,运行代码,在safari 的开发中,找到 正在调试的 iphone 或者 simluator

,找到对应的那个 请求的域名,或者详细链接,会出现类似chrome 的开发者工具

给NSURLRequest 加点cookie_第3张图片
第四步:放代码 ,就用webView 模拟了一个请求,塞了一个自定义cookie
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    NSString *urlStr = @"https://www.baidu.com";
    NSURL *url =[NSURL URLWithString:urlStr];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    NSHTTPCookie *cookie = [self setName:@"pengchao" value:@"this is my  cookie"];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    [self.webView loadRequest:request];
}
写一个常用的方法,只传name 和 value 即可,如果需要别的设置,可以自定义,最好封装一下,以供下次单独使用
-(NSHTTPCookie *)setName:(NSString *)CookieName value:(NSString *)CookieValue{
    
    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
    [cookieProperties setObject:CookieName forKey:NSHTTPCookieName];
    //设置cookie 的name
    [cookieProperties setObject:CookieValue forKey:NSHTTPCookieValue];
    //设置cookie 的name 对应的value 值
    [cookieProperties setObject:@".baidu.com" forKey:NSHTTPCookieDomain];
    //设置cookie 的域
    [cookieProperties setObject:@".baidu.com" forKey:NSHTTPCookieOriginURL];
    //
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    //设置cookie在哪个路径下
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
    //设置cookie的版本
    [cookieProperties setObject:[NSDate dateWithTimeIntervalSinceNow:60*60*24] forKey:NSHTTPCookieExpires];
    //设置失效时间
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieDiscard];
    //设置sessionOnly
    
    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    return cookie;
}

代码,我就不解释啦,所有代码都在这,如果用户需要缓冲到本地,可以用 NSUserDefaults

妈妈再也不用担心我给H5 塞cookie 出问题了


给NSURLRequest 加点cookie_第4张图片

最后几张图,帮你找到iphone safari 的调试地方:

给NSURLRequest 加点cookie_第5张图片

给NSURLRequest 加点cookie_第6张图片

给NSURLRequest 加点cookie_第7张图片

你可能感兴趣的:(给NSURLRequest 加点cookie)