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 необходима для того, чтобы этот параметр имел какой-либо эффект.