I’m trying to send http request to home automation controller ( Vera 2) but i’ve got problem with reading the response. nam->get is giving empty reply. So i tired firtst to write to file than read from file( xml files) but when i do nam->get first slot functions is being executed later than parse function and i got error
QNetworkReply *MainWindow::send_request(QString request, int flag)
{
QString req = request;
QNetworkReply *reply;
QNetworkRequest rreq;
rreq.setUrl(QUrl(req));
QNetworkAccessManager *nam = new QNetworkAccessManager();
bool ok = connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));
reply = nam->get(rreq);
parse_device_list();
return reply;
}
void MainWindow::parse_device_list()
{
QFile *file = new QFile("devices_list.xml");
if(!file->open(QIODevice::ReadOnly))
{
qDebug() << "error";
return;
}
qDebug() << "passed";
}
void MainWindow::finishedSlot(QNetworkReply *reply)
{
qDebug() << "here";
if (reply->error() == QNetworkReply::NoError)
{
// read data from QNetworkReply here
//qDebug() << reply->readAll();
QFile *file = new QFile("devices_list.xml");
if(!file->open(QIODevice::WriteOnly))
{
qDebug() << "error file";
return;
}
else
{
file->write(reply->readAll());
}
file->close();
//this->parse_device_list();
qDebug() << "end";
}
// Some http error received
else
{
qDebug() << "error write";// handle errors here
}
}
↧