在使用百度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;
}