iOS开发之如何在NSURLRequest中设置自定义header请求头

在使用百度API的时候需要在HTTP请求头中增加一个apikey,后来我查到已经有相关文章了:http://ju.outofmemory.cn/entry/136630

不过此文章写得让人有点看不明白,所以我根据此文章重新介绍如何在NSURLRequest设置自定义请求头。


直接上代码:

-(void)startRequest{
    
    NSString *strURL =[[NSString alloc]
                       initWithFormat:@"http://apis.baidu.com/heweather/weather/free?city=%@",
                       @"guangzhou"];	//设置url,这里是百度API查询天气的一个接口
    
    strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSURL *url = [NSURL URLWithString:strURL];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];

    //添加header
    NSMutableURLRequest *mutableRequest = [request mutableCopy];	//拷贝request
    [mutableRequest addValue:@"你的apikey" forHTTPHeaderField:@"apikey"];
    request = [mutableRequest copy];		//拷贝回去
    /**********************************************/

    NSLog(@"%@", request.allHTTPHeaderFields);	//打印出header验证    
    NSURLConnection *connection = [[NSURLConnection alloc]
                                   initWithRequest:request
                                   delegate:self];
    
    if (connection) {
        self.datas = [NSMutableData new];
    }
}


代码很简单,从注释//添加head 开始到注释/*******/结束,三行代码就可以添加自定义请求头。

第一句:首先声明一个NSMutableURLRequest变量并把request拷贝过去。

第二句:调用addValue方法添加请求头就是了,forHTTPHeaderField是添加头域。

第三句,把NSMutableURLRequest变量拷贝回去。


最后打印出来的是:

{
    apikey = 你的apikey;
}



你可能感兴趣的:(iOS)