My code is:
And output:Code:#ifndef HTTPACTION_H #define HTTPACTION_H #include <QtNetwork> #include <QNetworkAccessManager> #include <QUrl> class HttpAction : public QObject { Q_OBJECT public: HttpAction(); void startRequest(); void setUrl(QUrl url); private slots: void httpFinished(); private: QUrl httpUrl; QNetworkAccessManager qnam; QNetworkReply *reply; }; #endif ---------------------- HttpAction::HttpAction() { } void HttpAction::startRequest() { qWarning("2"); reply = qnam.get(QNetworkRequest(httpUrl)); connect(reply, SIGNAL(finished()), this, SLOT(httpFinished())); } void HttpAction::httpFinished() { qWarning("3"); if (reply->error() == QNetworkReply::NoError) { QByteArray bytes = reply->readAll(); } reply->deleteLater(); } void HttpAction::setUrl(QUrl url) { httpUrl = url; } -------------------- #include "httpaction.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushbutton_clicked() { qWarning("1"); HttpAction* http = new HttpAction; http->setUrl(QUrl("http://google.com")); http->startRequest(); qWarning("4"); } --------------
1
2
4
3
Why httpFinished() is executed after qWarning("4") ? I want to make http requests class to use everywhere in my app.





