Тайм-аут QNetworkAccessManager

В настоящее время я работаю над приложением, которое отправляет и получает файл с удаленного сервера. Для работы в сети я использую QNetworkAccessManager.

Чтобы загрузить файл, я использую QNetworkAccessManager:: put() и для загрузки. Я использую функции QNetworkAccessManager:: get().

При загрузке файла я инициализирую таймер со временем в 15 секунд. если я загружу небольшой файл, он завершит его в течение периода ожидания. Но если я попытаюсь загрузить файл, который очень большой по размеру, получите тайм-аут. Итак, как решить тайм-аут для загрузки большого файла.

То же самое в случае загрузки большого файла. Я получаю файл в куске с помощью chunk в сигнале readyread(). Здесь также, если я загружаю большой файл, я получаю тайм-аут. Итак, как решить тайм-аут для загрузки большого файла.

Ответ 1

Используйте QNetworkReply::uploadProgress() (или downloadProgress), чтобы предупредить вас о том, что операция прогрессирует. Затем установите таймер на 15 секунд после последнего уведомления uploadProgress/downloadProgress (при запуске таймера при загрузке/загрузке). Если загрузка когда-либо останавливается, вы можете отменить операцию через 15 секунд после последнего обновления.