Я пытаюсь получить доступ Set-Cookie
заголовки, посланные в ответ HTTP:Получить несколько заголовков Set-Cookie из NSHTTPURLResponse
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
NSDictionary *headers = [httpResponse allHeaderFields];
NSLog([headers description]);
}
Сервер HTTP отправляет два Set-Cookie
заголовки, как так:
Set-Cookie: foo=1; httponly; Path=/
Set-Cookie: bar=2; httponly; Path=/
Однако , интерфейс [HTTPResponse allHeaderFields]
объединяет множество заголовков Set-Cookie
в одну строку с разделителями-запятыми:
"Set-Cookie" = "foo=1; httponly; Path=/, bar=2; httponly; Path=/"
This cocoa-dev mailing list message подтверждает мое наблюдение.
Есть ли интерфейс для получения каждого заголовка Set-Cookie
или доступа к исходным заголовкам?
Я думаю, что вам нужно сделать это вручную: 'NSArray * setCookiesHeaders = headers [@" "Set-Cookie"] componentsSeparatedByString: @ ","] 'и проанализировать его, чтобы получить информацию. Дело в том, что значение - это строка, а заголовки - словарь, поэтому вы можете иметь только один ключ каждого из них, и, по-видимому, они объединяют их с символом «,», если он уже существует. – Larme
Недостаточно разделить строку запятыми, поскольку файл cookie может содержать запятые также. – parshap