我想看看GET请求的结果.根据我的理解,这段代码应该这样做.我究竟做错了什么?
void getDoc::on_pushButton_2_clicked()
{
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://www.google.com")));
}
void getDoc::replyFinished(QNetworkReply *reply)
{
qDebug() << reply->error(); //prints 0. So it worked. Yay!
QByteArray data=reply->readAll();
qDebug() << data; // This is blank / empty
QString str(data);
qDebug() << "Contents of the reply: ";
qDebug() << str; //this is blank or does not print.
}
Run Code Online (Sandbox Code Playgroud)
代码编译并运行正常.它只是不起作用.
我正在尝试在控制台应用程序中使用 Qt 下载并保存一些图像。这是我到目前为止得到的,(所有代码都在编译,但运行后,它似乎没有进入replyFinished()功能......)
void Test::start()
{
std::cout << "start1";
QNetworkAccessManager *manager = new QNetworkAccessManager();
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://www.exylum.mydevil.net/firefox.jpg")));
}
void Test::replyFinished(QNetworkReply* reply)
{
std::cout << "st";
QImage* img2 = new QImage();
img2->loadFromData(reply->readAll());
if(img2->isNull())
std::cout << "oops";
if(img2->save("omg2.jpg", "JPG"))
std::cout << "saved";
else
std::cout << "dont...";
}
Run Code Online (Sandbox Code Playgroud)