所以我正在研究一个关于如何对特定Web服务进行服务调用的小例子。我正在使用openweathermap.org网络服务。此服务的链接如下:
http://api.openweathermap.org/data/2.5/weather?q=London,uk
根据此链接,我可以按城市名称搜索天气。 所以我可以使用以下代码检索和NSLog JSON数据:
NSString *urlString = [NSString stringWithFormat:WXFORECAST, LOCATION];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"%@", json);
这是最低限度并检索服务。 现在我希望得到我的特定城市,而不是伦敦。
如果没有,我想得到JUST THE WEATHER部分,而不是获得风速,以及所有其他垃圾。
以下是有关API的详细信息的链接:
http://openweathermap.org/API#weather
在该链接下,有一节说明了这一点:
限制输出: 要限制列出的城市数量,请设置cnt参数api.openweathermap.org/data/2.5/find?lat=57&lon=-2.15&cnt=3
我相信这可能是我正在寻找的,但我不确切知道如何使用它......
感谢所有帮助,谢谢。
答案 0 :(得分:1)
使用网址访问API,尝试在浏览器中使用此功能:
http://api.openweathermap.org/data/2.5/weather?q=New+York,us
看看我在“新”和“约克”之间有一个加号?这是为了确保URL有效,因为它们不允许使用空格。
您必须想办法在变量中获取所需的网址。在您的代码中,它使用存储在WXFORECAST中的格式字符串创建URL。所以,更新一下。
我没有时间阅读API的所有工作方式,但您可能无法请求它为您提供的信息更少。但没有什么可以阻止你只从你需要的东西。这就是JSON字典中的所有内容,如果您想获得温度,您的代码可能会像这样。
NSArray *list = json[@"list"];
NSDictionary *london = list[0];
NSDictionary *main = london[@"main"];
NSString *temp = main[@"temp"];