Objective c 通过NSURLConnection sendAsynchronousRequest获取http头

Objective c 通过NSURLConnection sendAsynchronousRequest获取http头,objective-c,asynchronous,http-headers,nsurlconnection,Objective C,Asynchronous,Http Headers,Nsurlconnection,如何使用sendAsynchronousRequest获取http头?请注意,URLRequest的目标URL仅设置头。当我使用sendSynchronousRequest时,我可以通过使用NSURLHTTPResponse对象来获取http头。但是,在sendAsynchronousRequest中,只有一个NSURLResponse对象。在sendAsynchronousRequest方法中,我使用了下面的cast策略将NSURLResponse转换为NSURLHTTPResponse。但是

如何使用sendAsynchronousRequest获取http头?请注意,URLRequest的目标URL仅设置头。当我使用sendSynchronousRequest时,我可以通过使用NSURLHTTPResponse对象来获取http头。但是,在sendAsynchronousRequest中,只有一个NSURLResponse对象。在sendAsynchronousRequest方法中,我使用了下面的cast策略将NSURLResponse转换为NSURLHTTPResponse。但是,如果在不生成任何错误或异常的情况下阻塞主线程,这将不起作用\

[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
 {

    NSHTTPURLResponse *hResponse = (NSHTTPURLResponse*) response;
             if ([hResponse respondsToSelector:@selector(allHeaderFields)]) {
                 NSDictionary *dictionary = [hResponse allHeaderFields];
                 _myHeader = [dictionary objectForKey:@"myHeader"];
             }
 }

如果我不使用上面的代码,就没有阻塞。我还注意到sendAsynchronousRequest返回的NSData的长度为零。请帮助

您是否尝试在completionHandler中记录响应、数据和错误?或者在那里设置一个断点,检查你收到了什么和/或东西在什么地方阻塞?@jcaron我想你已经看到了没有编辑的帖子。completionHandler的作用域是从第一个{开始。数据的长度是零。我将检查NSURLResponse引用响应是否为零。我想应该是因为强制转换已经阻止了SystemCheckout以执行所有应该执行的测试。