0
我試圖實現一個簡單的下載程序。但我被困住了,因爲我的回覆和頭是空的。QNetworkReply爲空
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QtDebug>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
viewer.setMainQmlFile(QStringLiteral("qml/reply/main.qml"));
viewer.showExpanded();
QUrl url("http://www.speedtest.qsc.de/10MB.qsc");
QNetworkRequest request(url);
request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
QByteArray range;
range = "bytes=" + QByteArray::number(0) + "-";
request.setRawHeader("Range", range);
QNetworkAccessManager accessManager;
QNetworkReply* reply = accessManager.get(request);
qDebug() << __FILE__ << ":" << __LINE__ << reply->size();
QList<QByteArray> headerFields = reply->rawHeaderList();
qDebug() << __FILE__ << ":" << __LINE__ << headerFields.count();
for(qint64 i = 0; 0 < headerFields.count(); i++) {
QString string(headerFields.at(i));
qDebug() << __FILE__ << ":" << __LINE__ << string;
}
return app.exec();
}
我該做什麼,以便我的回覆不再是空的? 在此先感謝!
您需要等待回覆。 [看到這個問題](http://stackoverflow.com/questions/5486090/qnetworkreply-wait-for-finished) – PeterT
我加了 QEventLoop循環; connect(reply,SIGNAL(finished()),&loop,SLOT(quit())); loop.exec(); 低於 QNetworkReply * reply = accessManager.get(request); ,我得到錯誤: 使用未聲明的標識符'connect'。 這個錯誤是什麼意思? – Testerrrr
人們假設你通常在QT類中做這個。只需使用'QObject :: connect'而不是'connect' – PeterT