2013-09-22 2 views
1

Я использую метод sendAsynchronousRequest для NSURLConnection: queue: completeHandler:. Но я не могу получить ответ. каждый раз, когда httpResponse возвращает nil.NSURLResponse возвращает nil?

NSString *[email protected]" http://maps.googleapis.com/maps/api/directions/json?origin=Bapunagar,%20Ahmedabad,%20Gujarat&destination=CG%20Road,%20Sattar%20Taluka%20Society,%20Usman%20Pura,%20Ahmedabad,%20Gujarat&sensor=false&units=metric&mode=transit&departure_time=1343605500&language=ar"; 
    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSURL * url = [NSURL URLWithString:str]; 
    NSURLRequest * request = [NSURLRequest requestWithURL:url]; 

    [NSURLConnection 
    sendAsynchronousRequest:request 
    queue:[[NSOperationQueue alloc] init] 
    completionHandler:^(NSURLResponse *response, 
         NSData *data, 
         NSError *error) 
    { 
     NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; 
     NSLog(@"%@",httpResponse); 
     if ([data length] >0 && error == nil && [httpResponse statusCode] == 200) 
     { 
      NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
      NSLog(@"%@",json); 

     }}]; 

что не так в этом? помощь пожалуйста

+0

хорошо получил его благодаря –

ответ

0

У вас есть две проблемы:

  1. У вас есть дополнительное пространство в начале этого URL. Удалите лишнее пространство.

  2. Вы вызываете stringByAddingPercentEscapesUsingEncoding по URL-адресу, который уже был пропущен процентом. Удалите этот вызов до stringByAddingPercentEscapesUsingEncoding.

+0

Thnaks, но я не в состоянии получить надлежащее –

+0

Что JSON вы подразумеваете под надлежащим Json? ваш ответ json имеет специальные символы? удалите URL-адрес браузера и проверьте его. – thatzprem

+0

@Sunnyshah Когда я делаю эти два изменения, я получаю ответ, который успешно обрабатывается 'NSJSONSerialization'. Просьба уточнить, что вы подразумеваете под «правильным json». – Rob

Смежные вопросы