我正在与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