iphone nsurlconnection читает куки - PullRequest
12 голосов
/ 23 июля 2010

Я использую async NSURLConnection для подключения к веб-сайту с iPhone. Ручка didReceiveResponse активируется при ответе, и я пытаюсь получить все файлы cookie, используя allHeaderFields из NSHTTPURLResponse

Я вижу много хредеров, но нет Set-Cookie - похоже, симулятор iphone просто игнорирует их ... И я уверен, что куки присутствуют в ответ - монитор сети показывает, что они представляют

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

Кто-нибудь знает об этой проблеме?

UPDATE Я провел некоторое исследование: если мой веб-сайт возвращает настраиваемый заголовок, например «Custom-Header: value», - этот заголовок отображается в клиенте java, но отсутствует в iphone ...

спасибо

Ответы [ 3 ]

27 голосов
/ 28 июля 2010

Попробуйте найти его в общем хранилище файлов cookie HTTP:

for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies])
{
    NSLog(@"name: '%@'\n",   [cookie name]);
    NSLog(@"value: '%@'\n",  [cookie value]);
    NSLog(@"domain: '%@'\n", [cookie domain]);
    NSLog(@"path: '%@'\n",   [cookie path]);
}

или при работе в Swift:

for cookie in HTTPCookieStorage.shared.cookies!
{
   NSLog("name: \(cookie.name)")
   NSLog("value: \(cookie.value)")
   NSLog("domain: \(cookie.name)")
   NSLog("path: \(cookie.path)")
}
3 голосов
/ 23 июля 2010

Попробуйте: в вашем NSMutableURLRequest вы должны указать ему, что нужно обрабатывать куки:

[request setHTTPShouldHandleCookies:YES];
0 голосов
/ 23 июля 2010

Я не знаю, имеет ли это значение в приложениях, но какова ваша настройка «Принимать куки» для Safari в приложении «Настройки».Посмотрите, имеет ли значение «Всегда» значение.

Согласно некоторым сайтам, которые я видел, требуется полная перезагрузка iPhone, чтобы этот параметр имел какой-либо эффект.

...