zoukankan      html  css  js  c++  java
  • 自定义请求头信息及cookie信息

    请求网页的时候有时候我们需要传递一些参数信息,这个时候我们可以将参数放到请求头中,具体使用如下:

    这里有小问题就是请求参数的属性名好像不支持下划线,即 HTTP_UID不可用,但是HTTP-UID就可以,使用下划线的后果就是后台服务器不会接受到这个请求参数,至少在我的项目中出现了这个问题

    //WAP页面
            UIViewController *web = [[UIViewController alloc]init];
            UIWebView *webView = [[UIWebView alloc]initWithFrame:web.view.bounds];
            [web.view addSubview:webView];
            //设置请求路径
            NSURL *url = [NSURL URLWithString:@"http://www.sdadksaddaskddas"];
            NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
            
            //添加请求头信息  这个请求头名称需要和后台统一
            NSMutableURLRequest *mutableRequest = [request mutableCopy];    //拷贝request
           //这里我添加了HTTP_UID和HTTP_TOKEN两个请求头属性
            [mutableRequest addValue:[CDUser currentUser].userId forHTTPHeaderField:@"HTTP-UID"];
            [mutableRequest addValue:[CDUser currentUser].token forHTTPHeaderField:@"HTTP-TOKEN"];
            request = [mutableRequest copy];        //拷贝回去
         //加载url
            [webView loadRequest:request];
            web.hidesBottomBarWhenPushed = YES;
            [self.navigationController pushViewController:web animated:YES];    

    自定义cookie

       // 自定义ccokie 传值
      // 定义 cookie 要设定的 host
        NSURL *cookieHost = [NSURL URLWithString:@"http://www.dasdadadasd"];
        NSDictionary *dic = @{@"key1":value1,@"key2":value2};
        [dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
         // 设定 cookie
        NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:
                                    [NSDictionary dictionaryWithObjectsAndKeys:
                                     [cookieHost host], NSHTTPCookieDomain,
                                     [cookieHost path], NSHTTPCookiePath,
                                     key,NSHTTPCookieName,
                                     obj,NSHTTPCookieValue,
                                     nil]];
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
            
        }];
    
        [self.webView loadRequest:request];//加载
    enumerateKeysAndObjectsUsingBlock是NSDictionary中的一个方法,它有一个参数就是block,这个block携带了三个参数,这将要把dictionary里面的key和value每次一组传递到block.  
    enumerateKeysAndObjectsUsingBlock会遍历dictionary并把里面所有的key和value一组一组的展示给你,每组都会执行这个block。
    这其实就是传递一个block到另一个方法,在这个例子里它会带着特定参数被反复调用,直到找到一个ENOUGH的key,然后就会通过重新赋值那个BOOL *stop来停止运行,停止遍历同时停止调用block。
  • 相关阅读:
    myisamchk命令修复表操作
    CentOS下的yum upgrade和yum update区别
    CentOS 6.9/7通过yum安装指定版本的MySQL
    Linux下Shell去除空行的方法
    Linux下环境变量设置技巧
    交互设计师如何做运营需求-以网易严选邀请新人功能设计为例
    对应用启动时间的关注和获取
    快速发现并解决maven依赖传递冲突
    mock测试方法及实践改进
    网易杭研易盾实习心得(4)
  • 原文地址:https://www.cnblogs.com/gaoxiaoniu/p/5864544.html
Copyright © 2011-2022 走看看