博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: URLString'
阅读量:5139 次
发布时间:2019-06-13

本文共 2122 字,大约阅读时间需要 7 分钟。

转载自:http://i.cnblogs.com/EditPosts.aspx?postid=4012011

今天想写一个请求的天气,好的,废话不多说,先贴代码:

使用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 中,不然链接里的那些&符号,好像不识别把!

转载于:https://www.cnblogs.com/niit-soft-518/p/4012011.html

你可能感兴趣的文章
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
SPOJ - DISUBSTR Distinct Substrings (后缀数组)
查看>>
并发编程简介
查看>>
TCP的三次握手(建立连接)和四次挥手(关闭连接)
查看>>
第五次作业(最大公约数,最小公倍数)
查看>>
C++两水杯量出所需水量的小算法
查看>>
[面试真题] LeetCode:Same Tree
查看>>
iOS:quartz2D绘图
查看>>
第八周作业
查看>>
约数函数
查看>>
语言基础思维导图
查看>>
mysql自动添加时间的方法
查看>>
使用Python编的猜数字小游戏
查看>>
Java 日期时间
查看>>
UVa 540 Team Queue 【STL】
查看>>
BaseAdapter
查看>>
I;P : How to track the achievement event
查看>>
百度网盘如何批量添加音乐播放列表
查看>>
多元函数
查看>>