我试图从查询中获取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");
}
[...]
我总是得到一个零XML。 NSData始终为零。我不知道这件事发生了什么。如果我使用一个目的地的网址只有它可以工作,但不能超过一个。另外,我使用相同的方法使用google places api检索xml没有任何问题。这让我发疯了......
请指出正确的方向。 提前谢谢。
答案 0 :(得分:1)
我建议将所有'|'
替换为'%7C'
原来这是涵盖所有这些字符编码问题的更合适的方法:
NSURL *googleAPIurl = [NSURL URLWithString:[distancesURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];