2017-04-25 35 views
0

我正在尝试获取Google Directions API的回复。你能找到这个错误吗?如何从API Google Maps地图获取响应?

NSString *str = [NSString stringWithFormat:@"%@origin=%f,%f&destination=%f,%f&key=%@",@"https://maps.googleapis.com/maps/api/directions/json?", 
        self.marker.position.latitude, 
        self.marker.position.longitude, 
        self.SecondMarker.position.latitude, 
        self.SecondMarker.position.longitude, 
        @"AIzaSyDhZvxehd6ZDKFOB67WIyeLpy7KITwRPw0"]; 
    //str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    str = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 
    NSURL *url = [NSURL URLWithString:str]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
    //NSString *params = @""; 
    [request setHTTPMethod:@"POST"]; 
    //[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSURLSession *session = [NSURLSession sharedSession]; 
    [[session dataTaskWithRequest:request 
       completionHandler:^(NSData *data, 
            NSURLResponse *response, 
            NSError *error) { 
        // handle response 
        if (!error && [data length]) { 
         NSLog(@"Reponse: %@",response); 
        } 
        else{ 
         NSLog(@"%@",error.description); 
        } 
       }] resume]; 

请推荐几行代码?

错误消息:

Reponse: <NSHTTPURLResponse: 0x60800002d480> { URL: https://maps.googleapis.com/maps/api/directions/json?origin=-33.860000,151.200000&destination=-34.224142,150.068408&key=AIzaSyDhZvxehd6ZDKFOB67WIyeLpy7KITwRPw0 

} {状态码:200,标头{ “缓存控制”= “公众,最大年龄= 86400”; “内容编码”= gzip; “Content-Length”= 23856; “Content-Type”=“application/json; charset = UTF-8”; 日期=“2017年4月25日星期二08:48:36 GMT”; Expires =“2017年4月26日星期三08:48:36 GMT”; Server = mafe; Vary =“Accept-Language”; “alt-svc”=“quic = \”:443 \“; ma = 2592000; v = \”37,36,35 \“”; “x-frame-options”= SAMEORIGIN; “x-xss-protection”=“1; mode = block”; }}

+0

添加您的错误信息。 – KKRocks

+0

检查编辑请 –

+0

@HarjotSinghPanesar你没有得到错误,而不是你正在得到响应,现在你需要访问数据和序列化的JSON从它 –

回答

0

尝试这样

NSString *str = [NSString stringWithFormat:@"%@origin=%f,%f&destination=%f,%f&key=%@",@"https://maps.googleapis.com/maps/api/directions/json?", 
        self.marker.position.latitude, 
        self.marker.position.longitude, 
        self.SecondMarker.position.latitude, 
        self.SecondMarker.position.longitude, 
        @"AIzaSyDhZvxehd6ZDKFOB67WIyeLpy7KITwRPw0"]; 

str = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 
NSURL *url = [NSURL URLWithString:str]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[request setHTTPMethod:@"POST"]; 
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:nil delegateQueue:nil]; 
[[session dataTaskWithRequest:request completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) { 

       if (!error && [data length]) 
       { 
        NSLog(@"Reponse: %@",response); 

        NSError *e = nil; 
        NSDictionary *JSONarray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error:&e]; 
        NSLog(@"Response dictionary is%@",JSONarray); 
       } 
       else 
       { 
        NSLog(@"%@",error.description); 
       } 
      }] resume]; 
相关问题