iphone - how - habilitar cookies en ios 12
Administrar cookies HTTP en iPhone (3)
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.
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.
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"];
NSURLConnection
le ofrece la administración de cookies de forma gratuita. De la guía de programació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.