Après avoir été très déçu par CLGeocoder, j'ai décidé d'utiliser l'API GoogleMaps à la place.AFNetwork et GoogleAPI retournant NULL
J'ai conçu l'appel comme suit, en utilisant AFNetwork:
AFHTTPClient *new = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://maps.googleapis.com/"]];
NSDictionary *dict = [[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:@"thorsgade",@"true", nil] forKeys:[NSArray arrayWithObjects:@"address",@"sensor", nil]];
NSMutableURLRequest *req = [new requestWithMethod:@"GET" path:@"maps/api/geocode/json" parameters:dict];
AFJSONRequestOperation *call = [AFJSONRequestOperation JSONRequestOperationWithRequest:req success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSArray *geos = [JSON objectForKey:@"results"];
DLog(@"Got result : '%@' %@ from %@ %@ %@",JSON,geos,[NSHTTPURLResponse localizedStringForStatusCode:response.statusCode],response.allHeaderFields,request.URL.description);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
DLog(@"Failed %@ %@",error.localizedDescription,request.URL.description);
}];
[call start];
Je reçois ces commentaires:
résultat obtenu: (null) (null) d'aucune erreur { " Cache-Control "=" public, max-age = 86400 "; "Content-Encoding" = gzip; "Content-Length" = 1603; "Content-Type" = "application/json; jeu de caractères = UTF-8"; Date = "Ven, 07 Dec 2012 08:51:58 GMT"; Expires = "Sat, 08 Dec 2012 08:51:58 GMT"; Serveur = mafe; Vary = "Accept-Language"; "X-Frame-Options" = SAMEORIGIN; "X-XSS-Protection" = "1; mode = bloc"; } http://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=thorsgade
Résultat nul, mais aucune erreur. Le contenu est reconnu dans les en-têtes en tant que JSON, mais le JSON brut est null. Le problème est que si j'ouvre http://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=thorsgade dans un navigateur, j'obtiens beaucoup de résultats.
Jusqu'à présent, j'ai essayé:
- Effleurer le capteur booleon vrai/faux. Faking l'utilisateur-agent pour être un safari régulier
- Utilisez POST au lieu de GET.
Sans chance ...
il fonctionne bien pour moi :), la version iOS sur le contrôle vous? – aahsanali
im vérification dans 6.0 et 6.0.1 –