1

我正在尝试运行以下代码:

std::string RequestLogin()
{
std::cout << ">> User Login method..." << std::endl;
QNetworkRequest request(this->serverUrl);

request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QJsonObject payload;
payload.insert("userName", this->user);
payload.insert("password", this->password);
QByteArray byte_payload = QJsonDocument(payload).toJson();
QEventLoop loop;
bool a = connect(&(this->manager), SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit()));
// send post call
std::cout << "sending the post call" << std::endl;
QNetworkReply *reply = (this->manager).post(request, byte_payload);
loop.exec();
QByteArray reponse = reply->readAll();
std::cout << reponse.toStdString() << std:: endl;

return response.toStdString();
}

当我使用 QT 将其编译为 c++ 文件时,此方法运行完美。但是我在构建 wasm 并调用此方法时遇到了问题。未调用事件循环的退出槽,因此未收到我等待获得的响应。浏览器变得无响应。在 Firefox 上,当我收到终止/等待页面响应的通知时,如果我单击终止,则在网络选项卡中我看到网络休息成功完成。在浏览器窗口中,控制台没有打印出响应。

有谁知道如何解决这个问题?

对于我的要求,我需要在 C++ 中创建一些方法来执行一些休息调用,并且在响应中我需要在将值返回给 Javascript 之前进行一些计算。

4

0 回答 0