qt restapi发表没有回应

问题描述

我通过nestJs服务上的rest api使用“ qt”传输数据。 nestJs服务可以正常运行,但在“ qt”中没有收到任何响应。

这是qt的摘录:

qnetworkrequest request;
request.setUrl(myUrl);
request.setHeader(qnetworkrequest::ContentTypeHeader,"application/json");

QNetworkAccessManager *restClient;
restClient = new QNetworkAccessManager();
QNetworkReply *replay = restClient->post(request,*payload);
QByteArray result = replay->readAll();
qDebug() << result;

控制台打印始终为:

""

我的nestJs服务的正确响应是(通过失眠的rest客户端工具收到):

{
  "Generated": {},"ErrorCode": 200,"ErrorText": "OK"
}

感谢帮助。

解决方法

请求是异步的,因此您必须使用完成信号:

QNetworkReply *replay = restClient->post(request,*payload);
QObject::connect(replay,&QNetworkReply::finished,[replay](){
    QByteArray result = replay->readAll();
    qDebug() << result;
    replay->deleteLater();
});