Как получить правильные заголовки Set-Cookie для NSHTTPURLResponse? - PullRequest
3 голосов
/ 23 марта 2010

Я хочу использовать следующий код для входа на веб-сайт, который возвращает информацию о своих файлах cookie следующим образом:

Set-Cookie: 19231234
Set-Cookie: u2am1342340
Set-Cookie: owwjera

Я использую следующий код для входа на сайт, но оператор print в конце ничего не выводит о «set-cookie». На Snow leopard библиотека, похоже, автоматически выбирает cookie для этого сайта, и последующие отправленные соединения устанавливаются с правильными заголовками «cookie». Но на леопарде это не работает таким образом, является ли это триггером для этого поведения «запомнить cookie для определенного корневого URL»?

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:uurl]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"keep-live" forHTTPHeaderField:@"Connection"];
[request setValue:@"300" forHTTPHeaderField:@"Keep-Alive"];
[request setHTTPShouldHandleCookies:YES];

[request setHTTPBody:postData];
[request setTimeoutInterval:10.0];

NSData *urlData;
NSHTTPURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:request
                                returningResponse:&response
                                            error:&error];

NSLog(@"response dictionary %@",[response allHeaderFields]);

1 Ответ

6 голосов
/ 23 марта 2010
[request setHTTPShouldHandleCookies:YES];

Эта строка заставляет систему обрабатывать файлы cookie для вас.

...