2012-06-17 10 views
16

Czy istnieje sposób, aby anulować wszystkie żądania sieci (żądanie rozpoczął inną metodą) przed robię żądanie sieciowe z AFNetworking Starałem się jak poniżej, ale nie działa:Jak anulować żądania sieciowe z 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 ..... 

Ale nie działa. Chcę tylko anulować wszystkie żądania (przynajmniej te, które napisałem powyżej), zanim zacznę nowe żądanie.

Dziękujemy!

+0

@mattt Proszę spojrzeć! –

Odpowiedz

37

[[httpClient operationQueue] cancelAllOperations];

+1

to działa? Nie jestem pewien, czy moje żądania są anulowane przez utworzenie nowej instancji httpClient i wywołanie cancelAllOperations. – Alan

+2

To nie działa dla mnie ... dane utrzymują synchronizację z serwerem nawet po wywołaniu tej funkcji. Proszę pomóż!! – Anshul

+1

@mattt to nie działa. nadal to robi – Alan

11

nie tworzyć nowego AFHTTPClient instancji.

spróbować "[self cancelAllHTTPOperationsWithMethod:@"POST" path:@"product/like"];

+4

Co to jest "self" w tym przypadku? –

1

Oba pozostałe dwie odpowiedzi są w porządku. Nie twórz nowej instancji AFHTTPRequestOperationManager

 @interface OperateCustomerView() <WYPopoverControllerDelegate>{ 

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