2012-08-06 17 views
5

मैं Tutorial ऑनलाइन का अनुसरण कर रहा हूं और मेरे पास 2 विधियां हैं जो Google स्थल API पर एक क्वेरी सबमिट करती हैं। मैं दुर्भाग्य से प्रतिक्रिया प्राप्त करने की कोशिश कर रहा हूं, यह काम नहीं कर रहा है। मेरे पास कोड में कुछ डीबग संख्याएं हैं I हालांकि, यहां कोड है।Google स्थल API कोई प्रतिक्रिया नहीं लौटा रहा है

-(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"); 
} 

लॉग उत्पादन पर इस तरह के रूप में चला जाता है:

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 

किसी को भी मुझे गलत हो रहा तो मैं कोई प्रतिक्रिया नहीं didn क्या बता सकते हैं।? हाँ मैंनेपर कॉल किया है ViewDidLoad विधि सहायता लोगों की सराहना करें! क्षमा करें अगर मैं भी वर्बोज़ हूं .. सीखने की कोशिश कर रहे स्टार्टर को समायोजित करें!

उत्तर

2

प्रदान किए गए कोड को देखते हुए, मेरा सबसे अच्छा अनुमान यह है कि आपको प्रतिशत एस्केप जोड़कर अपनी यूआरएल स्ट्रिंग को एन्कोड करने की आवश्यकता है। url इस तरह बनाने का प्रयास करें ...

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]; 

सामान्यतः आपको एक लाइन में है कि बनाना होगा, लेकिन स्पष्टता के लिए दो पंक्तियों के रूप में यह पता चला है। यह वैध URL प्रदान करने के लिए उन = और & को ठीक से बचने वाले वर्णों में परिवर्तित करेगा।

+0

अच्छी तरह से मेरा यूआरएल अलग है हालांकि, यह विशेष यूआरएल, मैंने सीधे Google स्थल API साइट को खींच लिया और बस मेरी एपीआई कुंजी को बदल दिया। तो आपको लगता है कि समस्या केवल यूआरएल में ही है? –

+0

सटीक यूआरएल आपकी समस्या के लिए अप्रासंगिक है। मैं विशेष रूप से यह कह रहा हूं कि प्रोसेसिंग के लिए सर्वर पर भेजने से पहले यह यूआरएल एन्कोड किया गया है। –

+0

जब भी मैंने कोड की उस पंक्ति को जोड़ा, तो मुझे कोई प्रतिक्रिया नहीं मिली :( –

संबंधित मुद्दे