0

我在 qnetworkaccessmanager 上苦苦挣扎了一段时间。我用谷歌搜索了很多,但我没有找到解决方案。

我正在创建一个使用 qaccessmanager 与休息服务器交谈的客户端。QNetworkReply 没有返回任何结果。服务器正常工作,但客户端没有返回结果。最重要的是,服务器被调用了 3 次,有时服务器崩溃了。希望有人能弄清楚出了什么问题。我附上客户端代码。

我尝试了不同的方法,例如连接 networkaccessmanager、qnetworkreply 等的完成信号,但所有这些最终都会给出相同的错误“连接已关闭”或 readAll bytearray 为空。

void RestClientCore::ConnectToServer()
{
   m_NetworkManager  = new QNetworkAccessManager(this);

    QUrl url("http://localhost");
    url.setPort(5432);
    QByteArray postData;
     postData.append("/?userid=user");
     postData.append("&site=site");
    QNetworkReply *reply = m_NetworkManager->post(request,postData);
    connect(reply, SIGNAL(readyRead()),this, SLOT(slotReadyRead()));
    connect(reply, SIGNAL(finished()), this, SLOT(onRequestCompleted()));
}

void RestClientCore::onRequestCompleted() {

  QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
    if(reply->error())
    {
      qDebug() <<reply->bytesAvailable() << reply->errorString();
    }
    else
    {
      qDebug() << reply->readAll();
    }
    reply->deleteLater();
}

void RestClientCore::slotReadyRead()
{
   QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
   qDebug() << reply->readAll();
}

提前致谢 问候 Rejo

4

0 回答 0