2012-03-28 11 views
1

Ich versuche, die XML-Daten aus einer Abfrage an den api ohne Erfolg zu holen ...Fetch XML von Distance Matrix API (Google) auf dem iPhone

Ich tue dies:

[...] 

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"); 
    } 
[...] 

Ich bekomme IMMER immer ein nil XML. NSData ist immer Null. Ich weiß nicht, was damit passiert. Wenn ich eine URL mit nur einem Ziel verwende, funktioniert es, aber nicht für mehr als eins. Außerdem verwende ich die gleiche Methode, um XML mit google places api ohne Probleme abzurufen. Das macht mich verrückt ...

Bitte zeigen Sie mir in die richtige Richtung. Vielen Dank im Voraus.

+0

Haben Sie versucht, die NSData Erstellung mit '+ (id) dataWithContentsOfURL: (NSURL *) aURL Optionen: (NSDataReadingOptions) Maskenfehler: (NSError **) errorPtr' um zu sehen, ob Sie einen Fehler bekommen? Scheint wahrscheinlich, und es könnte einen Einblick geben. – rosslebeau

+0

Verwenden von xmlData = [NSData dataWithContentsOfURL: googleAPIurl-Optionen: NSDataReadingMapped error: & error]; Ich erhalte diese Ausnahme: *** Beenden der App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: '*** - [NSConcreteData initWithContentsOfURL: Optionen: Fehler:]: kein URL-Argument' Warum ist die URL null ??? : S – Samui

+1

Versuchen Sie, alle '' | ''mit''% 7C'' zu ersetzen – rosslebeau

Antwort

1

Ich schlug vor, alle die '|' mit '%7C'

Stellt sich heraus, ersetzt das ist die geeignetere Methode alle diese Zeichencodierung Themen abdecken:

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