2012-06-17 24 views
16

Có cách nào để hủy bỏ tất cả các yêu cầu mạng (yêu cầu bắt đầu bằng phương pháp khác) trước khi tôi làm một yêu cầu mạng với AFNetworking tôi đã cố gắng như dưới đây nhưng không làm việc:Làm thế nào để hủy bỏ yêu cầu mạng với 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 ..... 

Nhưng không hoạt động. Tôi chỉ muốn hủy bỏ tất cả yêu cầu (ít nhất là yêu cầu tôi đã viết ở trên) trước khi tôi bắt đầu một yêu cầu mới.

Cảm ơn bạn!

+0

@mattt Hãy xem! –

Trả lời

37

[[httpClient operationQueue] cancelAllOperations];

+1

có hoạt động không? Tôi không chắc liệu yêu cầu của tôi có bị hủy hay không bằng cách tạo một phiên bản mới của httpClient và gọi cancelAllOperations. – Alan

+2

Tính năng này không hoạt động đối với tôi ... dữ liệu sẽ đồng bộ hóa với máy chủ ngay cả sau khi gọi chức năng này. Hãy giúp tôi!! – Anshul

+1

@mattt tính năng này không hoạt động. nó vẫn làm điều đó – Alan

11

Đừng Tạo mới AFHTTPClient dụ.

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

+4

'self' trong trường hợp này là gì? –

1

Cả hai câu trả lời còn lại đều đúng. Không tạo trường hợp AFHTTPRequestOperationManager mới

 @interface OperateCustomerView() <WYPopoverControllerDelegate>{ 

     AFHTTPRequestOperationManager *manager;// = [AFHTTPRequestOperationManager manager]; 
    } 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    manager = [AFHTTPRequestOperationManager manager]; 
Các vấn đề liên quan