2017-02-08 2 views
0
NSString *url = [NSString stringWithFormat: @"http://apis.haoservice.com/weather?cityname=%@&key=%@", cityname, China_Weather_APP_KEY]; 

NSString *url_after = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url_after] 
                 cachePolicy:NSURLRequestUseProtocolCachePolicy 
                timeoutInterval:10.0]; 
[request setHTTPMethod:@"GET"]; 

NSURLSession *session = [NSURLSession sharedSession]; 
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request 
              completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
               if (error) { 
                NSLog(@"%@", error); 
               } else { 
                NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response; 
                NSLog(@"%@", response); // Here I print the response information 
               } 
              }]; 
[dataTask resume]; 

Информация NSLog это:NSMutableURLRequest не содержат информацию

2017-02-08 12:17:21.324 XXX[4168:197023] <NSHTTPURLResponse: 0x608000436240> { URL: http://apis.haoservice.com/weather?cityname=%E6%88%90%E9%83%BD&key=af4587a7d87740ae9a0d73697e0cccc9 } { status code: 200, headers { 
"Cache-Control" = private; 
Connection = "keep-alive"; 
"Content-Encoding" = gzip; 
"Content-Type" = "text/html; charset=utf-8"; 
Date = "Wed, 08 Feb 2017 03:48:39 GMT"; 
Server = "nginx/1.10.2"; 
"Transfer-Encoding" = Identity; 
"X-AspNet-Version" = "4.0.30319"; 
"X-Powered-By" = "ASP.NET"; 
"X-Safe-Firewall" = "zhuji.360.cn 1.0.9.47 F1W1"; 
} } 

Но если я отправляю этот адрес в браузере:

http://apis.haoservice.com/weather?cityname=成都&key=af4587a7d87740ae9a0d73697e0cccc9 

страница покажет результат I хотите получить:

enter image description here

Почему мой ответ не содержит информацию о картинке?

ответ

1

Вы должны получить доступ к data, которые вы получили с ответом сервера, чтобы получить JSON ответ, поэтому используйте NSJSONSerialization, чтобы получить словарь объекта из данных rsponse.

if (error) { 
    NSLog(@"%@", error); 
} else { 
    NSError* parseError; 
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData: data options:kNilOptions error:&parseError]; 
    NSLog(@"%@",json);         
} 
Смежные вопросы