在我的項目中,我需要下載一個簡單的.txt文件。我創建了一個功能來下載基於URL中的文件:Qt無法使用QNetworkAccessManager下載文件
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。
嘗試寫一個已知的字符串常量,而不是reply-> readAll() –
我從來沒有使用字符串文字。有沒有可能得到一個快速的例子? – mrg95
首先檢查是否存在實際下載的數據:檢查readAll()返回的內容(將其存儲在QByteArray中並使用調試器或使用toHex()打印)並檢查reply-> errorString()。 –