//DD_V_T_APIClient 繼承自 AFHTTPSessionManager
- (void)cancelRequet:(NSString *)requestPath {
//1.先獲取所有的任務,包括請求,下載,上傳等
? ? [[[DD_V_T_APIClient sharedClient] session] getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {
//2.調用取消請求
? ? ? ? [self cancelTasksInArray:dataTasks withPath:requestPath];
? ? ? ? [self cancelTasksInArray:uploadTasks withPath:requestPath];
? ? ? ? [self cancelTasksInArray:downloadTasks withPath:requestPath];
? ? }];
}
- (void)cancelTasksInArray:(NSArray *)tasksArray withPath:(NSString *)path {
//3.遍歷該請求類型下所有的網絡請求
? ? for (NSURLSessionTask *task in tasksArray) {
? ? ? ? NSRange range = [[[[task currentRequest] URL] absoluteString] rangeOfString:path];
//4.如果該請求的地址找不到,取消任務
? ? ? ? if (range.location != NSNotFound) {
? ? ? ? ? ? [task cancel];
? ? ? ? }
? ? }
}