【发布时间】:2021-08-05 10:04:37
【问题描述】:
我正在尝试为我正在开发的 Rest API 编写一个非常简单的客户端。
我要做的就是向我唯一的端点发送一个请求(没有参数,不是数据)并打印出发回的数据。
这是我的代码
#include <QCoreApplication>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString address = "http://localhost/test_api/welcome.php";
QUrl api_url = QUrl(address);
qDebug() << "Sending the request";
QNetworkAccessManager *networkManager = new QNetworkAccessManager();
//connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(serviceRequestFinished(QNetworkReply*)));
QNetworkReply *reply = networkManager->post(QNetworkRequest(api_url),QByteArray());
while (!reply->isFinished()){
if (!reply->isRunning()){
break;
}
}
qDebug() << "Reply is finished";
if (reply->error() != QNetworkReply::NoError){
qDebug() << "The following error ocurred";
qDebug() << reply->errorString();
return 0;
}
QString data_returned(reply->readAll());
qDebug() << "DATA RETURNED";
qDebug() << data_returned;
return 0;
}
当我运行此代码时,它挂起,因为回复从未完成并且一直在运行。
我需要创建一个类来接收来自 QtNeworkManager 的完成信号还是我的代码有其他问题?
【问题讨论】:
标签: qt