Qt Не могу скачать файл, используя QNetworkAccessManager

В моем проекте мне нужно скачать простой файл .txt. Я создал функцию для загрузки файла на основе URL:

void MainWindow::downloadFile(const QString &url, const QString &aPathInClient)
{
QNetworkAccessManager* m_NetworkMngr = new QNetworkAccessManager(this);
QNetworkReply *reply = m_NetworkMngr->get(QNetworkRequest(QUrl(url)));
QEventLoop loop;
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
QUrl aUrl(url);
QFileInfo fileInfo=aUrl.path();

QFile file(aPathInClient+"\\"+fileInfo.fileName());
file.open(QIODevice::WriteOnly);
file.write(reply->readAll());
delete reply;
}

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

Спасибо 🙂

РЕДАКТИРОВАТЬ:

Все хорошо, моя проблема заключалась в том, что моя ссылка использовала https вместо http.

0

Решение

Я никогда не использовал функцию записи для записи в QFile, Попробуйте следующий подход:

QFile file(aPathInClient+"\\"+fileInfo.fileName());
file.open(QIODevice::WriteOnly);
QTextStream out(&file);
out << "This file is generated by Qt\n";

РЕДАКТИРОВАТЬ: выше было просто проверить, правильно ли записывается файл в или нет. Теперь, так как это было проверено, вы можете попробовать:

out << reply->readAll();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]