【问题标题】:Fetch XML of Distance Matrix API (google) on iPhone在 iPhone 上获取距离矩阵 API (google) 的 XML
【发布时间】: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


【解决方案1】:

我建议用'%7C'替换所有'|'

事实证明这是解决所有这些字符编码问题的更合适的方法:

NSURL *googleAPIurl = [NSURL URLWithString:[distancesURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2020-04-05
    • 2012-03-27
    相关资源
    最近更新 更多