2012-06-17 7 views
16

Gibt es eine Möglichkeit der gesamte Netzwerkanforderung abzubrechen (die durch ein anderes Verfahren gestartet Anfrage), bevor ich mit AFNetworking eine Netzwerkanfrag tun ich wie unten versucht, aber nicht:Wie Netzwerkanfrage stornieren mit 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 ..... 

Aber nicht funktionieren. Ich möchte nur alle Anfragen abbrechen (zumindest die Anfrage, die ich oben geschrieben habe), bevor ich eine neue Anfrage starte.

Vielen Dank!

+0

@mattt Bitte werfen Sie einen Blick! –

Antwort

37

[[httpClient operationQueue] cancelAllOperations];

+1

funktioniert das? Ich bin mir nicht sicher, ob meine Anfragen abbrechen, indem ich eine neue Instanz von httpClient erstelle und cancelAllOperations aufruft. – Alan

+2

Dies funktioniert nicht für mich ... die Daten werden auch nach dem Aufruf dieser Funktion weiterhin mit dem Server synchronisiert. Bitte helfen Sie !! – Anshul

+1

@mattt das funktioniert nicht. es tut es immer noch – Alan

11

nicht neu AFHTTPClient Instanz erstellen Sie.

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

+4

Was ist in diesem Fall "selbst"? –

1

Sowohl die beiden anderen Antworten richtig sind. Erstellen Sie keine neue AFHTTPRequestOperationManager Instanz

 @interface OperateCustomerView() <WYPopoverControllerDelegate>{ 

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