Qt - некоторые загруженные файлы имеют 0 байт

В настоящее время я борюсь с приложением Qt. Я пытаюсь загрузить некоторые файлы с Google Диска, используя QNetworkManager, QNetworkRequest и QNetworkReply.

Во-первых, мое приложение отлично работает на нескольких компьютерах (4 или 5 человек протестировали его и не обнаружили ошибок). Каждый файл, который должен быть загружен, эффективно загружается. (Каждый раз таким образом загружается около 280 файлов, и это не проблема.)

Проблема в том, что у члена моей рабочей группы есть только 0-байтовые файлы. Каждый файл, загружаемый через SSL, не имеет содержимого. Единственная загрузка по классическому HTTP правильно загружена.

Вы когда-нибудь видели этот баг?

Весь мой «загрузочный» код взят из этого одного учебника.

Редактировать: после нескольких тестов мы обнаружили, что ошибка была Error creating SSL context (). Таким образом, мы попытались решить ее, установив на компьютер обе необходимые библиотеки (ssleay32.dll и libeay32.dll), но это не сработало. Вы знаете, нужны ли ему какие-то другие библиотеки?


person Abrikot    schedule 24.07.2017    source источник
comment
Ваш пример может быть достаточно хорош для диагностики (я не знаю - я его не изучал), но Complete означает, что кто-то может скопировать/вставить его в файл C++ на своем компьютере и скомпилировать его. Поддающийся проверке означает, что они могут затем запустить программу, чтобы увидеть проблему.   -  person Michael Burr    schedule 24.07.2017
comment
Наличие реального полного примера с Qt может быть очень длинным из-за всех необходимых классов и методов. На самом деле то, что я опубликовал, является классическим кодом и не должно (надеюсь!) содержать ошибок. Я думал, что публикация большого количества дополнительного кода неуместна... Тем не менее, должен ли я отредактировать его, чтобы получить действительно полный пример?   -  person Abrikot    schedule 24.07.2017
comment
что такое fileDownloader? Вы могли бы показать свое заявление, пожалуйста.   -  person eyllanesc    schedule 24.07.2017
comment
@eyllanesc Конечно, я обновил свой пост.   -  person Abrikot    schedule 24.07.2017
comment
Вы можете отобразить конструктор FileDownloader. :П   -  person eyllanesc    schedule 24.07.2017
comment
Сделанный! Я забыл сказать, что такое m_WebCtrl, прежде чем вставлять этот код ^^'   -  person Abrikot    schedule 24.07.2017
comment
Я думаю, вы должны знать, что это mvce, нам нужно, чтобы он был минимальным, но также воспроизводимым, потому что только угадывая, что Автор, мы расстроились и/или заскучали.   -  person eyllanesc    schedule 24.07.2017
comment
Да, это ясно. Я вставил ссылку на учебник, с которым я работал. За исключением того факта, что я использовал синтаксис Qt5-connect, это именно тот код, который я использовал.   -  person Abrikot    schedule 24.07.2017
comment
Пробовали ли вы использовать сигнал error от QNetworkReply?   -  person eyllanesc    schedule 24.07.2017
comment
@eyllanesc Спасибо, я не знал об этой функции! Итак, теперь у нас есть ошибка: Error creating SSL context. Я обновил свой вопрос.   -  person Abrikot    schedule 24.07.2017
comment
какой у тебя компилятор?   -  person eyllanesc    schedule 24.07.2017
comment
Используйте этот сигнал и распечатайте то, что вы предоставляете, чтобы лучше его проанализировать.   -  person eyllanesc    schedule 24.07.2017
comment
Я думаю, вам нужно добавить: libssl32   -  person eyllanesc    schedule 24.07.2017
comment
Это ничего не решило :/   -  person Abrikot    schedule 24.07.2017
comment
@eyllanesc На самом деле мне пришлось добавить несколько библиотек, вы были правы. Но они должны были быть 32-битными библиотеками даже для 64-битных систем.   -  person Abrikot    schedule 25.07.2017


Ответы (1)


На самом деле речь шла о пропавших библиотеках. Мне пришлось добавить в свою папку:

  • libeay32.dll
  • libssl32.dll
  • ssleay32.dll

Дело в том, что даже в 64-битных системах эти библиотеки должны были быть для 32-битных систем, потому что я компилировал свои приложения для 32-битных систем...

Более того, для некоторых компьютеров требовалась msvcr120.dll.

person Abrikot    schedule 25.07.2017