Downloading XML file
-
Hello,
i want to get a XML file from online source,
example:
http://api.openweathermap.org/data/2...kikda&mode=xml
how can i download it and store the data in QTemporaryFile or pass it directly to QXmlStreamReader
i tried a lot but i dont know what is the problem exactly
example:@
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QNetworkAccessManager manager = new QNetworkAccessManager ;
QNetworkRequest request(QUrl("http://api.openweathermap.org/data/2.5/weather?q=skikda&mode=xml"));
QNetworkReply reply = manager->get( request) ;
QXmlStreamReader reader( reply );return a.exec();
}
@ -
QNetworkAccessManager works asynchronously. That means that at line 7 in your code, the reply is still empty. You need to wait for "finished":http://qt-project.org/doc/qt-5/qnetworkaccessmanager.html#finished signal to be emitted by QNAM, and then proceed to save/ parse the reply, check for errors, etc.
This is best done by introducing a new class, with a slot defined and connected to QNAM::finished() singal. The main routine is not a good place to do it, although it is still possible.