Как установить / проверить куки в приложении iPhone? - PullRequest
3 голосов
/ 05 мая 2010

Я пытаюсь установить cookie, а также проверить, есть ли он, у кого-нибудь есть пример кода для этого? Я нашел только ссылку на класс TTPCookieStorage , но было бы полезно, если бы я увидел пример реализации.

Ответы [ 3 ]

4 голосов
/ 05 мая 2010

Только сервер 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.

2 голосов
/ 05 мая 2010
1 голос
/ 05 мая 2010

Cookies для веб-страниц. Если вы хотите отображать веб-страницы, используйте UIWebView. Если вы хотите хранить постоянные данные, используйте NSUserDefaults. Если вы хотите проанализировать куки, отправленные с сервера, используйте NSURLConnection и проанализируйте заголовки. Если вы хотите увидеть, какие куки были установлены UIWebView, запущенным в вашем приложении, используйте NSHTTPCookieStorage.

NSHTTPCookieStorage Class Reference

Эти файлы cookie используются всеми приложения и хранятся в синхронизации кросс-процесс.

Это верно только в том случае, если ваше приложение работает на iPhone как root.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...