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