QNetworkAccessManager返回空结果

时间:2014-08-18 11:56:48

标签: qt httpclient qnetworkaccessmanager qnetworkrequest qnetworkreply

我正在与qnetworkaccessmanager争吵很长一段时间。我google了很多,但我没有找到解决方案。

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

我尝试了不同的方法,如连接networkaccessmanager的完成信号,qnetworkreply e.t.c.但所有这些都最终导致相同的错误“Connection Closed”或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

0 个答案:

没有答案