Я довольно долго борюсь с qnetworkaccessmanager. Я много гуглил, но не нашел решения для этого.
Я создаю клиент с помощью qaccessmanager для общения с сервером отдыха. QNetworkReply не возвращает никаких результатов. Сервер работает правильно, но клиент не возвращает результатов. Кроме того, сервер вызывается 3 раза, и иногда сервер падает. Надеюсь, кто-нибудь сможет понять, что происходит не так. Прилагаю код клиента.
Я пробовал разные подходы, такие как подключение готового сигнала networkaccessmanager, qnetworkreply и т.д. Но все они заканчиваются тем, что выдают одну и ту же ошибку «Соединение закрыто» или пустой массив байтов readAll.
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();
}
Заранее спасибо С уважением Рехо