Только сервер HTTP-соединения должен устанавливать куки. Это делается с помощью поля Set-Cookie в заголовках.
Хранилище cookie, которое вы связали, обрабатывает все действия cookie NSURLConnection (как получение, так и настройка) и, как правило, вам не следует менять куки самостоятельно. Если вы хотите переопределить, вы не можете использовать NSURLConnection и должны будете использовать CFReadStreamRef, обрабатывать связь и строить CFHTTPMessageRef вручную.
Вам потребуется , чтобы обрабатывать файлы cookie, если вы используете HTTP-связь на стороне сервера.
Если вы внедряете сервер с использованием CFHTTPMessageRef, то:
NSDate *expiryDate = /* set some date value */
CFHTTPMessageSetHeaderFieldValue(
response,
(CFStringRef)@"Set-Cookie",
(CFStringRef)[NSString stringWithFormat:
@"SomeCookieName=%@;Path=/;expires=%@",
someStringValue,
[dateFormat stringFromDate:expiryDate]]);
, где response
- это CFHTTPMessageRef
, который вы используете для ответа. Вы можете использовать CFHTTPMessageCopyAllHeaderFields
и получить объект для ключа «Cookie» для извлечения куки из клиента в заголовке CFHTTPMessageRef.