NSMutableURLRequest的响应不包含该信息

时间:2017-02-08 04:21:19

标签: ios objective-c nsurlsession

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信息是:

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

该页面将显示我想要的结果:

enter image description here

为什么我的回复不包含图片的信息?

1 个答案:

答案 0 :(得分:1)

您需要访问服务器响应中的data才能获得JSON响应,因此请使用NSJSONSerialization从rsponse数据中获取Dictionary对象。

if (error) {
    NSLog(@"%@", error);
} else {
    NSError* parseError;
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData: data options:kNilOptions error:&parseError];
    NSLog(@"%@",json);                                   
}