Administrar cookies HTTP en iPhone

Quiero portar una aplicación de Python que use mecanize para el iPhone. Esta aplicación necesita iniciar sesión en una página web y usar la cookie del sitio para ir a otras páginas en ese sitio para obtener algunos datos.

Con mi aplicación de Python estaba usando mechanize para la gestión automática de cookies. ¿Hay algo similar para Objective C que sea portátil para el iPhone?

Gracias por cualquier ayuda.

NSURLConnection le ofrece la administración de cookies de forma gratuita. De la guía de progtwigción del sistema de carga de URL :

El sistema de carga de URL envía automáticamente cualquier cookie almacenada apropiada para una solicitud de NSURL. a menos que la solicitud especifique que no se envíen cookies. Del mismo modo, las cookies devueltas en NSURLResponse se aceptan de acuerdo con la política actual de aceptación de cookies.

Puede usar la clase NSURLConnection para realizar una solicitud HTTP para iniciar sesión en el sitio web y recuperar la cookie. Para realizar una solicitud, simplemente cree una instancia de NSURLConnection y asígnele un objeto delegado.

 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]; NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; 

Luego, implementa un método delegado.

 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSHTTPURLResponse *HTTPResponse = (NSHTTPURLResponse *)response; NSDictionary *fields = [HTTPResponse allHeaderFields]; NSString *cookie = [fields valueForKey:@"Set-Cookie"]; // It is your cookie } 

Conserva o copia la cadena de cookies. Cuando desee realizar otra solicitud, agréguela a su encabezado HTTP de su instancia de NSURLRequest.

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]; [request addValue:cookie forHTTPHeaderField:@"Cookie"]; 

La respuesta de @ zonble solo funciona en mi servidor local; Si el servidor no se ejecuta localmente, el encabezado “Set-Cookie” no se encuentra en NSDictionary * fields = [HTTPResponse allHeaderFields];

Finalmente encontré que la solución de @benzado funciona bien. También vea: iphone nsurlconnection lee las cookies @Tal Bereznitskey’s answer.