Тайм-аут QNetworkAccessManager
В настоящее время я работаю над приложением, которое отправляет и получает файл с удаленного сервера. Для работы в сети я использую QNetworkAccessManager.
Чтобы загрузить файл, я использую QNetworkAccessManager:: put() и для загрузки. Я использую функции QNetworkAccessManager:: get().
При загрузке файла я инициализирую таймер со временем в 15 секунд. если я загружу небольшой файл, он завершит его в течение периода ожидания. Но если я попытаюсь загрузить файл, который очень большой по размеру, получите тайм-аут. Итак, как решить тайм-аут для загрузки большого файла.
То же самое в случае загрузки большого файла. Я получаю файл в куске с помощью chunk в сигнале readyread(). Здесь также, если я загружаю большой файл, я получаю тайм-аут. Итак, как решить тайм-аут для загрузки большого файла.
Ответы
Ответ 1
Используйте QNetworkReply::uploadProgress()
(или downloadProgress
), чтобы предупредить вас о том, что операция прогрессирует. Затем установите таймер на 15 секунд после последнего уведомления uploadProgress
/downloadProgress
(при запуске таймера при загрузке/загрузке). Если загрузка когда-либо останавливается, вы можете отменить операцию через 15 секунд после последнего обновления.