有一个小问题,(使用TouchXML)接收的XML文件的内容。

我的第一个查询的工作非常出色,看起来是这样的:

NSString *url = [NSString stringWithFormat:STATION_ID, latitude, longtitude];
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error:nil];
NSLog(@"%@",rssParser);

所以这个记录给了我完整的XML文件。

在此之后,在另一种方法中即时通讯试图相同的:

NSString *url = [NSString stringWithFormat:WEATHER_URL, [positionInformation objectForKey:@"stationId"]];
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error:nil];
NSLog(@"%@", rssParser);

但即时得到的日志(空)。 洛URL字符串给了我正确的URL没有空格或东西时,URL日志例如这个样子的:

NSString *url = [NSString stringWithFormat:WEATHER_URL, [positionInformation objectForKey:@"stationId"]];
NSLog(@"%@", url);

在调试器的结果控制台是

http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KCASUNNY19

看着这个文件,我的浏览器似乎是确定。任何人都知道怎么回事错误?????

我也试过,首先要得到这个URL由stringWithContentsOfURL的内容,但是这也没有奏效。

有帮助吗?

解决方案

此人有同样的问题: HTTP ://www.iphonedevsdk.com/forum/iphone-sdk-development/15963-problem-initwithcontentsofurl.html 。像在地下天气的API长相期待一个用户代理并返回500 HTTP响应时不会看到一个。您可以使用CXMLDocument -initWithData:options:error:传给你开始使用NSMutableURLRequest数据。

其他提示

您应该尝试使用initWithContentsOfURL的错误说法:选项:错误:。创建NSerror *对象,并把它传递在正是如此:

NSError      *error;
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error: &error];

如果你没有得到一个rssParser对象,检查错误。

我复制此XML文件的内容,以我自己的服务器,改变了URL路径。 这个作品correcty,所以我觉得有一个与阅读本“的.asp”文件有问题。

HMM。但它的XML内容,奇怪。

//编辑: 我在我的服务器上做了一个小PHP文件,返回“ASP”文件的内容:

<?php
  echo file_get_contents("http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KCASANFR70");
 ?>

看完我的剧本作品的内容,但这种解决方法是不是我想要的。

哦该死= /

您确认您的URL字符串被正确编码,从而使问号被解释为一个查询?你可能想看看使用您的网址dataUsingEncodingstringUsingEncoding使用它来初始化rssReader之前。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top