Получать заголовки HTTP через NSURLRequest / NSURLConnection в Какао

Я работал над тем, чтобы выяснить, как получать заголовки 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 по умолчанию?


person Community    schedule 25.10.2008    source источник


Ответы (1)


В делегате подключения добавьте метод -connection:didReceiveResponse:. Если вы выполняете стандартный HTTP-запрос, переданный объект NSURLResponse на самом деле будет объектом NSHTTPURLResponse и будет отвечать на сообщение -allHeaderFields. Это должно быть то, что вы ищете.

person Ben Gottlieb    schedule 25.10.2008
comment
Я тоже подумал, что это наша. Теперь я извлек одно поле заголовка, содержащее дополнительную информацию: `Www-Authenticate: Digest realm = \ test \ qop = \ auth \ ´ и так далее. Есть ли возможность получить / установить эти данные как дополнительный словарь или массив? - person Julian F. Weinert; 07.12.2012