您的位置:首页 > 移动开发 > IOS开发

IOS 'NSInternalInconsistencyException'

2017-06-17 21:19 495 查看
今天想写一个请求的天气。好的。废话不多说。先贴代码:

使用AFNetWorking 发送get请求,可是一直报错 IOS 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: URLString'

翻译出来就是 不能满足urlstring。 可能时请求地址错了。可是请求地址没错。返回是一串json数据。然后我就迷糊了,后来 我发现这个url中參数是直接写上去的

,然后parameters 放參数的地方 没放。后来我把參数单独写了进来。就搞定了啊。

[appDelegate.manager GET:@"http://api.map.baidu.com/telematics/v3/weather?location=南京&output=json&ak=4zG5R7SqnQa" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *rootDict=responseObject;
NSLog(@"%@",rootDict);
NSArray *resultArray = [rootDict objectForKey:@"results"];
NSDictionary *cityDict=[resultArray objectAtIndex:0];

//获取城市
NSString *currentCity= [cityDict objectForKey:@"currentCity"];
//准备获取天气
NSArray *weatherArray= [cityDict objectForKey:@"weather_data"];
//获取第一天天气的字典
NSDictionary *firstDict=[weatherArray objectAtIndex:0];
//获取第一天日期
NSString *firstDate=[firstDict objectForKey:@"date"];
//获取第一天天气
NSString *weather=[firstDict objectForKey:@"weather"];
//获取第一天风向
NSString  *wind=[firstDict objectForKey:@"wind"];
//获取第一天气温
NSString *temper=[firstDict objectForKey:@"temperature"];

[[[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"当前城市%@\n日期:%@\n天气%@\n风向%@\n气温%@\n",currentCity,firstDate,weather,wind,temper] message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil] show];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"链接失败");
}];
});


正确代码:

NSDictionary *parameter=@{@"location": @"南京",@"output": @"json",@"ak": @"4zG5R7Lw8Fd3SqnQa"};
[appDelegate.manager GET:@"http://api.map.baidu.com/telematics/v3/weather" parameters:parameter success:^(AFHTTPRequestOperation *operation, id responseObject) {


这里的參数一定要写再 parameters 中,不然链接里的那些&符号。好像不识别把!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐