Получение заголовков HTTP через NSURLRequest/NSURLConnection в Cocoa
Я работал над выяснением того, как получать заголовки HTTP через запрос, сделанный с NSURLConnection. Обычно запрос выполняется с чем-то простым:
NSURLConnection *connection = [[NSURLConnection alloc]
initWithRequest:request
delegate:self];
Единственный способ, который я лично нашел в многократной документации Apple для получения заголовков ответов, - это синхронный вызов, используя следующий метод класса NSURLConnection:
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
Здесь я легко могу ссылаться на объект ответа типа NSURLResponse. Проблема здесь в том, что я не готов делать синхронные запросы через мобильное устройство, особенно с сетью с высокой задержкой, такой как EDGE. Возможно ли получить аналогичные результаты по умолчанию, асинхронное поведение NSURLConnection?
Ответы
Ответ 1
В деле делегирования соединения добавьте метод -connection:didReceiveResponse:
. Если вы выполняете стандартный HTTP-запрос, объект NSURLResponse, который был передан, фактически будет объектом NSHTTPURLResponse и отвечает на сообщение -allHeaderFields
. Это должно быть то, что вы ищете.