从Web服务+ AFnetworking获取数据所需的时间?

时间:2013-12-13 09:45:09

标签: ios iphone objective-c afnetworking afnetworking-2

在我最近的Web服务调用应用程序中,我正在使用AFNetworking - > AFHTTPClient。

如果Web服务响应时间大于1秒,我需要显示加载器,否则我只需要调用Web服务。

如何在使用AFNetworking时计算此时间。使用NSURLConnection,我可以执行[response expectedContentLength]之类的操作,并了解下载文件所需的时间。但AFNetworking怎么样?

1 个答案:

答案 0 :(得分:4)

您可以为AFNetworking操作设置进度块 喜欢AFDownloadRequestOperation操作

在此块中,您可以获得预期的内容长度和您接收的数据包大小,您可以计算完成操作所需的时间(考虑网络速度将保持不变)

但是这不能在从Web服务接收数据之前完成 (就像你在1或0.1秒内获得200个字节) 然后划分按时间接收的数据包并获得网络速度,然后计算整个数据下载的时间(Web服务操作)

[operation setProgressiveDownloadProgressBlock:^(AFDownloadRequestOperation *operation, NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) {
                NSLog(@"Operation%i: bytesRead: %ld", 1, (long)bytesRead);
                NSLog(@"Operation%i: totalBytesRead: %lld", 1, totalBytesRead);
                NSLog(@"Operation%i: totalBytesExpected: %lld", 1, totalBytesExpected);
                NSLog(@"Operation%i: totalBytesReadForFile: %lld", 1, totalBytesReadForFile);
                NSLog(@"Operation%i: totalBytesExpectedToReadForFile: %lld", 1, totalBytesExpectedToReadForFile);

                    }

    }];