Подтвердить что ты не робот

Iphone nsurlconnection читать файлы cookie

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

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

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

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

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

спасибо

4b9b3361

Ответ 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.