2012-06-17 18 views
16

Esiste un modo per annullare tutte le richieste di rete (la richiesta avviato da un altro metodo) prima di fare una richiesta di rete con AFNetworking ho provato come qui di seguito, ma non lavoro:Come annullare richiesta di rete con afnetworking

- (void)sendRequest:(NSUInteger)page{ 


NSURL *aUrl = [NSURL URLWithString:@"http://www.abc.com/"]; 
AFHTTPClient *httpClientToCancel = [[AFHTTPClient alloc] initWithBaseURL:aUrl]; 
[httpClientToCancel cancelAllHTTPOperationsWithMethod:@"POST" path:@"product/like"]; 
[httpClientToCancel release]; 

... start a new request here ..... 

Ma non funziona. Voglio solo cancellare tutte le richieste (almeno la richiesta che ho scritto sopra) prima di iniziare una nuova richiesta.

Grazie!

+0

@mattt Si prega di dare un'occhiata! –

risposta

37

[[httpClient operationQueue] cancelAllOperations];

+1

funziona? Non sono sicuro che le mie richieste vengano annullate creando una nuova istanza di httpClient e chiamando cancelAllOperations. – Alan

+2

Questo non funziona per me ... i dati continuano a essere sincronizzati con il server anche dopo aver chiamato questa funzione. Per favore aiuto!! – Anshul

+1

@mattt questo non funziona. lo fa ancora – Alan

11

non creano nuova AFHTTPClient istanza.

provare "[self cancelAllHTTPOperationsWithMethod:@"POST" path:@"product/like"];

+4

Che cosa è "self" in questo caso? –

1

Entrambe le altre due risposte hanno ragione. Non creare una nuova istanza AFHTTPRequestOperationManager

 @interface OperateCustomerView() <WYPopoverControllerDelegate>{ 

     AFHTTPRequestOperationManager *manager;// = [AFHTTPRequestOperationManager manager]; 
    } 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    manager = [AFHTTPRequestOperationManager manager]; 
Problemi correlati