iphone nsurlconnection читает куки

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

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

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

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

ОБНОВЛЕНИЕ Я провел некоторое исследование: если мой веб-сайт возвращает пользовательский заголовок, такой как "Custom-Header: value" - тогда этот заголовок виден в клиенте java, но не в iphone...

Спасибо

3 ответа

Попробуйте найти его в общем хранилище файлов 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)")
}

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

[request setHTTPShouldHandleCookies:YES];

Я не знаю, имеет ли это значение в приложениях, но каковы ваши настройки Accept Cookies для Safari в приложении "Настройки". Посмотрите, имеет ли значение всегда значение.

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

Другие вопросы по тегам