自定義請求頭信息及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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM