AFNetworking: establece GET params * y * intercepta networkingirects

Estoy usando AFNetworking 2.0 en un proyecto de iOS, y estoy tratando de crear una request GET con algunos parameters, y networkingireccionar interceptar.

Veo el método -[AFHTTPRequestOperation setRedirectResponseBlock] , que estoy usando para tomar las networkingirecciones y hacer algo con ellas. Pero no veo cómo establecer los parameters de request en esa operación. Esto es lo que parece:

  AFHTTPRequestOperation *ballotOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest]; [ballotOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"in completion"); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"in error"); }]; [ballotOperation setRedirectResponseBlock:^NSURLRequest *(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *networkingirectResponse) { if (networkingirectResponse == nil) { return request; } else { NSLog(@"in networkingirect, blocking"); [ballotOperation cancel]; return nil; } }]; [[AFHTTPRequestOperationManager manager].operationQueue addOperation:ballotOperation]; 

Veo que AFHTTRequestOperationManager tiene el método GET:parameters:success:failure: en el que puede establecer los parameters. Pero eso inicia la request de inmediato, no me da la oportunidad de establecer el bloque de networkingirección en ella.

¡Veo un código de ejemplo de AFNetworking 1.x usando AFHTTPClient , pero no quiero volver!

¿Cómo puedo hacer lo que bash hacer?

El [AFHTTPRequestOperationManager GET...] en AFHTTPRequestOperationManager.m es solo un contenedor para crear un object AFHTTPRequestOperation y agregarlo a operationQueue. Utilizando esto como ejemplo, puede lograr lo que está tratando de hacer.

Así es como se crea la request en el método GET de AFHTTPRequestOperationManager :

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSMutableURLRequest *request = [manager.requestSerializer requestWithMethod:@"GET" URLString:[[NSURL URLWithString:URLString relativeToURL:manager.baseURL] absoluteString] parameters:parameters error:nil]; 

donde urlString es un NSString que representa la url, y los parameters son un NSDictionary.

Creo que el rest del código debería funcionar, pero por si acaso, así es como se hace en el método GET (con su bloque de networkingirección añadido también):

 AFHTTPRequestOperation *ballotOperation = [self HTTPRequestOperationWithRequest:request success:success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"in completion"); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"in failure"); }]; [ballotOperation setRedirectResponseBlock:^NSURLRequest *(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *networkingirectResponse) { if (networkingirectResponse == nil) { return request; } else { NSLog(@"in networkingirect, blocking"); [ballotOperation cancel]; return nil; } }]; [manager.operationQueue addOperation:ballotOperation];