2012-06-17 3 views
16

Есть ли способ, чтобы отменить все запрос сети (запрос запуска другим способом), прежде чем я сделать запрос сети с AFNetworking Я попытался, как показано ниже, но не работает:Как отменить запрос сети с 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 ..... 

Но не работает. Я просто хочу отменить все запросы (по крайней мере, запрос, который я написал выше), прежде чем я начну новый запрос.

Спасибо!

+0

@mattt Пожалуйста, смотрите! –

ответ

37

[[httpClient operationQueue] cancelAllOperations];

+1

это работает? Я не уверен, что мои запросы отменены, создав новый экземпляр httpClient и вызвав cancelAllOperations. – Alan

+2

Это не работает для меня ... данные продолжают синхронизацию с сервером даже после вызова этой функции. Пожалуйста помоги!! – Anshul

+1

@mattt это не работает. он все равно делает это – Alan

11

Не Создать новый AFHTTPClient экземпляр.

попробовать "[self cancelAllHTTPOperationsWithMethod:@"POST" path:@"product/like"];

+4

Что такое 'self' в этом случае? –

1

И остальные два ответа правы. Не создавать новый экземпляр AFHTTPRequestOperationManager

 @interface OperateCustomerView() <WYPopoverControllerDelegate>{ 

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