Время, необходимое для получения данных из веб-службы + AFnetworking?

В моем недавнем приложении для вызова веб-службы я использую AFNetworking -> AFHTTPClient.

Мне нужно показать загрузчик, если время отклика веб-службы больше 1 секунды, иначе мне просто нужно вызвать веб-службу.

Как рассчитать это время при использовании AFNetworking. С помощью NSURLConnection я могу сделать что-то вроде [response expectedContentLength] и подсчитать, сколько времени потребуется для загрузки файла. а как насчет AFNetworking.


person Mangesh    schedule 13.12.2013    source источник


Ответы (1)


Вы можете установить блокировку выполнения для операции AFNetworking
аналогично операции AFDownloadRequestOperation.

Из этого блока вы можете получить ожидаемую длину контента и размер пакетов, которые вы получаете, из которых вы можете рассчитать время, необходимое для полной работы (рассчитываемая скорость сети останется прежней)

Но это нельзя сделать до получения данных от веб-службы (например, вы получаете 200 байт за 1 или 0,1 секунды), затем разделите полученный пакет на время и получите скорость сети, а затем рассчитайте время для полной загрузки данных (операция веб-службы)

[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);

                    }

    }];
person Dinesh Kaushik    schedule 13.12.2013
comment
+1 Спасибо, Обновляю вас/ Принимаю ответ после реализации - person Mangesh; 13.12.2013