【发布时间】:2012-04-11 13:37:30
【问题描述】:
我正在尝试从查询中获取 XML 数据到 api,但没有成功...
我正在这样做:
[...]
NSURL *googleAPIurl = [NSURL URLWithString:@"http://maps.googleapis.com/maps/api/distancematrix/xml?origins=28.124822,-15.430006&destinations=28.126953,-15.429874|28.072056,-15.416574|28.103186,-15.417665|28.127916,-15.625403|28.099125,-15.418365|28.107740,-15.454050|28.050825,-15.454066|28.051640,-15.454104|28.101788,-15.423592|28.113750,-15.446980|28.098871,-15.420730|28.098217,-15.449371|28.083364,-15.418172&mode=driving&sensor=false"];
NSData *xmlData = [NSData dataWithContentsOfURL:googleAPIurl];
NSError *error;
GDataXMLDocument *xmlDocument = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];
if (xmlDocument == nil)
{
NSLog(@"NIL XML");
}
[...]
我总是得到一个 nil XML。 NSData 始终为零。我不知道这是怎么回事。如果我使用一个只有一个目的地的网址,它可以工作,但不能超过一个。此外,我正在使用相同的方法通过 google places api 检索 xml,没有任何问题。这快把我逼疯了……
请指点我正确的方向。 提前致谢。
【问题讨论】:
-
您是否尝试过使用
+ (id)dataWithContentsOfURL:(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr创建 NSData 以查看是否出现错误?似乎很有可能,并且可能会提供一些见解。 -
使用 xmlData = [NSData dataWithContentsOfURL:googleAPIurl options:NSDataReadingMapped error:&error];我收到此异常:*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*** -[NSConcreteData initWithContentsOfURL:options:error:]: nil URL argument”为什么 url 为零??? :S
-
尝试用
'%7C'替换所有'|' -
你为我指明了正确的方向!我已经解决了,如果你想让我接受你的答案,请用这行代码回答这个问题 NSURL *googleAPIurl = [NSURL URLWithString:[distancesURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];谢谢!
-
我知道有类似的东西,只是在评论我的思考过程。谢谢!很高兴你把它修好了:)
标签: iphone ios xml-parsing gdata