POST Solicitud de devolución de resultados en caching no deseados (AFNetworking)

Estoy utilizando AFNetworking para realizar requestes POST desde una class "autenticadora" compartida que pasa el nombre de usuario y la contraseña de un usuario. Aquí está la request POST que hago:

NSURL *url = [NSURL URLWithString:@"https://www..."]; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; // params NSDictionary* dict = @{@"loginName": username, @"password": password, @"serviceName": @"...", @"serviceURL": @"...", @"action": @"..."}; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; request = [httpClient requestWithMethod:@"POST" path:@"..." parameters:dict]; request.cachePolicy = NSURLRequestReloadIgnoringCacheData; request.timeoutInterval = 30.0; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"%@", operation.responseString); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"login failed"); }]; [operation start]; 

Funciona muy bien para el primer inicio de session y todo vuelve como se esperaba. Cuando bash iniciar session con un nombre de usuario / contraseña diferente, veo que la salida de la operation.responseString es exactamente la misma salida que el primer inicio de session.

¿Alguien sabe por qué está devolviendo la salida desde el primer inicio de session? Siento que la respuesta es una respuesta almacenada en caching y agregué lo siguiente para tratar de evitar la devolución de la información almacenada en caching:

 request.cachePolicy = NSURLRequestReloadIgnoringCacheData; 

He establecido puntos de corte para ver que el nombre de usuario y la contraseña en el NSDictionary para los parameters son la nueva combinación de nombre de usuario / contraseña.

Los literales de cadena no se manipulan de todos modos y son iguales en todas las requestes de POST. Las elipses son para la privacidad y son marcadores de position para cadenas con significado semántico.

Intente en su lugar

 request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData; 

porque el NSURLRequestReloadIgnoringCacheData solo ignora los datos del caching local y no los almacena en caching en la networking.

Editar: como señala Steve Madsen a continuación, este no era el problema real y, en general, las respuestas a las requestes POST no se almacenan en caching en ningún caso. El problema real era que el progtwig no se desconectaba entre dos inicios de session, por error. ¡Pero lo solucionamos al final!

Tengo el mismo problema y me fijo por fin. Usando el método:

 NSURLCache *shanetworkingCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; [NSURLCache setShanetworkingURLCache:shanetworkingCache]; 

de esta publicación de blog: ¿Cómo funciona Caching en AFNetworking? : AFImageCache y NSUrlCache explicado

Pruébelo [request setHTTPShouldHandleCookies: NO];