2010-07-23 12 views
12

Estoy usando NSURLConnection asincrónico para conectarme a un sitio web desde un iPhone. Manejar didReceiveResponse se activa en respuesta y estoy tratando de conseguir todas las cookies, mediante el uso de allHeaderFields NSHTTPURLResponseiphone nsurlconnection leer cookies

Veo muchos hreader, pero sin Set-Cookie - se ve como simulador de iPhone simplemente las ignora ... Y yo soy que las cookies están presentes en respuesta - monitor de red muestra que presentan

no uso ningún almacenamiento http - todo lo que yo estoy tratando de hacer es imprimir para registrar toda la cabecera - y no ven las galletas información

¿El Alguien sabe acerca de este problema?

ACTUALIZACIÓN He hecho algunas investigaciones: si mi página web devuelve encabezado personalizado, como "Custom-cabecera: valor" - a continuación, esta cabecera es visible en el cliente java, pero no está en iPhone ...

gracias

Respuesta

0

No sé si importa en las aplicaciones, pero ¿cuál es la configuración de Aceptar cookies para Safari en la aplicación Configuración? Vea si cambiar a Siempre importa.

De acuerdo con algunos sitios que he visto, se requiere un reinicio completo del iPhone para que esta configuración tenga algún efecto.

+0

Estoy usando simulador y no uso el almacenamiento automático de cookies. Todo lo que quiero es ver los encabezados http en bruto, y los veo a todos, pero la cookie – user349302

3

Prueba esto: en su NSMutableURLRequest, debe informar a manejar las cookies:

[request setHTTPShouldHandleCookies:YES]; 
+0

tengo esta línea, todavía no hay cookies (tanto SÍ como NO). Lo extraño es que veo todos los encabezados, pero las cookies ... y solo quiero verlos, y manejar myslef – user349302

+0

¿Dónde estás configurando esto? Creo que debería ser antes de establecer cualquier otro valor en la solicitud. Además, cf. http://www.cocoadev.com/index.pl?ParsingHTTPHeaders – Don

+0

sí, lo llamo justo después de la inicialización de la solicitud. De todos modos: la pregunta no es solo sobre las cookies: me gustaría ver TODOS los encabezados y el sistema no lo hace (ver mi actualización en la publicación inicial) – user349302

27

tratar de buscar en el almacenamiento compartido de cookies 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]); 
} 

o si se trabaja en Swift :

for cookie in HTTPCookieStorage.shared.cookies! 
{ 
    NSLog("name: \(cookie.name)") 
    NSLog("value: \(cookie.value)") 
    NSLog("domain: \(cookie.name)") 
    NSLog("path: \(cookie.path)") 
} 
+0

esto acaba de hacer mi día, ¡gracias! –

+0

mina también. respuesta fantástica Muchas gracias – Katushai

Cuestiones relacionadas