2012-08-06 24 views
5

Estoy siguiendo un Tutorial en línea y tengo 2 métodos que envían una consulta a la API de Google Places. Intento recuperar una respuesta desafortunadamente, no está funcionando. Tengo algunos números de depuración en el código. Sin embargo, aquí está el código.Google Places API No devolviendo una respuesta

-(void) queryGooglePlaces{ 
    NSString *url = @"https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=myKey"; 

    //Formulate the string as a URL object. 
    NSURL *googleRequestURL=[NSURL URLWithString:url]; 
    NSLog(@"1.5"); 
    // Retrieve the results of the URL. 
    dispatch_async(kBgQueue, ^{ 
     NSData* data = [NSData dataWithContentsOfURL: googleRequestURL]; 
     [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES]; 
    }); 
    NSLog(@"2"); 
} 

-(void)fetchedData:(NSData *)responseData { 
    //parse out the json data 
    NSError* error; 
    NSDictionary* json = [NSJSONSerialization 
          JSONObjectWithData:responseData 

          options:kNilOptions 
          error:&error]; 

    //The results from Google will be an array obtained from the NSDictionary object with the key "results". 
    NSArray* places = [json objectForKey:@"results"]; 

    //Write out the data to the console. 
    NSLog(@"Google Data: %@", places); 
    NSLog(@"3"); 
} 

En el registro de la salida va como tal:

2012-08-03 16:40:12.411 sCode[25090:1a303] 1.5 
2012-08-03 16:40:12.411 sCode[25090:1a303] 2 
2012-08-03 16:40:12.512 sCode[25090:1a303] 4 
2012-08-03 16:40:12.751 sCode[25090:1a303] Google Data: (
) 
2012-08-03 16:40:12.751 sCode[25090:1a303] 3 
2012-08-03 16:40:13.628 sCode[25090:1a303] 1 
2012-08-03 16:40:14.129 sCode[25090:1a303] 4 

¿Puede alguien decirme qué se está mal, así que no dejase obtener una respuesta.? sí, llamé al [self queryGooglePlaces]; en mi ViewDidLoad método ¡Aprecie la ayuda, muchachos! Lo siento si soy demasiado detallado ... ¡solo un principiante tratando de aprender!

Respuesta

2

Dado el código proporcionado, mi mejor opción es que debe codificar su cadena de URL agregando porcentajes de escape. Trate de crear url así ...

NSString *url = @"https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=myKey"; 
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

lo más habitual es hacer que en una sola línea, pero se han mostrado como dos líneas para mayor claridad. Esto convertirá esos = y & en caracteres escapados correctamente para proporcionar una URL válida.

+0

bien mi url es diferente sin embargo, esta URL en particular, saqué directamente del sitio API de Google Places y simplemente reemplacé mi clave API. ¿Crees que el problema radica solo en la url? –

+0

La URL exacta es irrelevante para su problema. Me refiero específicamente a cómo se codifica esa URL antes de enviarla al servidor para su procesamiento. –

+0

incluso cuando agregué esa línea de código no obtuve una respuesta :( –

Cuestiones relacionadas