Iphone nsurlconnection читать файлы cookie
Я использую async NSURLConnection для подключения к веб-сайту с iPhone. Handle didReceiveResponse активируется в ответ, и я пытаюсь получить все файлы cookie, используя allHeaderFields из NSHTTPURLResponse
Я вижу много hreader, но нет Set-Cookie - похоже, что симулятор iphone просто игнорирует их...
И я уверен, что файлы cookie присутствуют в ответ - монитор сети показывает, что они представляют
Я не использую какую-либо http-хранилище - все, что я пытаюсь сделать, это распечатать для записи всего заголовка - и не видеть файлы cookie
Кто-нибудь знает об этой проблеме?
UPDATE
Я сделал несколько исследований: если мой сайт возвращает пользовательский заголовок, например "Custom-Header: value", то этот заголовок будет виден в java-клиенте, но не находится в iphone...
спасибо
Ответы
Ответ 1
Попробуйте найти его в общем хранилище файлов 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)")
}
Ответ 2
Попробуйте следующее: в своем NSMutableURLRequest
вы должны сказать ему, чтобы обрабатывать файлы cookie:
[request setHTTPShouldHandleCookies:YES];
Ответ 3
Я не знаю, имеет ли значение в приложениях, но какова настройка Accept Cookies для Safari в приложении "Настройки". Смотрите, меняется ли значение "Всегда".
По некоторым сайтам, которые я видел, для этой настройки требуется полная перезагрузка iPhone.