dataTaskWithRequest的问题(目标c)

时间:2016-01-02 23:58:40

标签: ios nsurlsession

我正在为ios制作一个小应用程序,我需要获取一些json数据。问题是我不知道如何正确地提出请求。我正在尝试以下代码,但“响应”始终为零,不确定原因:

-(instancetype) initWithMatchURL:(NSString*) urlFixtureJSON {
self = [super init];
if(self)
{
    NSURLRequest * request = [NSURLRequest requestWithURL: [NSURL URLWithString: urlFixtureJSON]];

    __block NSData * response = [NSData new];

    NSURLSessionConfiguration * sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
    sessionConfiguration.HTTPAdditionalHeaders = @{
                                                   @"Accept"    : @"application/json",
                                                   @"api-key"   : @"<redacted>"
                                                   };

    NSURLSession *session = [NSURLSession sessionWithConfiguration: sessionConfiguration];

    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:
                                  ^(NSData *dataTask, NSURLResponse *responseTask, NSError *errorTask)
    {
        response = [NSData dataWithData: dataTask];      
    }];

    [task resume];

    NSLog(@"%@", response);
    ...
}

提前致谢

1 个答案:

答案 0 :(得分:0)

响应将始终为零,因为块中的代码是异步执行的(所以它在将来写入日志后会发生)。如果您将日志记录移至response = [...]以下,则可以使用。