Получить XML API-интерфейса матрицы расстояний (Google) на iPhone - PullRequest
1 голос
/ 28 марта 2012

Я пытаюсь получить данные 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 всегда ноль.Я не знаю, что с этим происходит.Если я использую URL-адрес только с одним адресатом, он работает, но не для более чем одного.Кроме того, я использую тот же метод для получения XML с API Google мест без проблем.Это сводит меня с ума ...

Пожалуйста, укажите мне правильное направление.Заранее спасибо.

1 Ответ

1 голос
/ 28 марта 2012

Я предложил заменить все '|' на '%7C'

Оказывается, это более правильный метод для решения всех этих проблем кодировки символов:

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