2024-07-26 17:49:18 +02:00
|
|
|
#include <QGuiApplication>
|
|
|
|
#include <QQmlEngine>
|
|
|
|
#include <QQmlContext>
|
|
|
|
#include <QQmlComponent>
|
2024-06-27 12:18:32 +02:00
|
|
|
|
2024-07-26 19:17:16 +02:00
|
|
|
// networking
|
|
|
|
#include <QNetworkAccessManager>
|
|
|
|
#include <QNetworkRequest>
|
|
|
|
#include <QNetworkReply>
|
|
|
|
#include <QUrl>
|
|
|
|
#include <QUrlQuery>
|
|
|
|
|
|
|
|
// json parsing
|
|
|
|
#include <QJsonValue>
|
|
|
|
#include <QJsonDocument>
|
|
|
|
#include <QJsonObject>
|
|
|
|
#include <QVariantMap>
|
|
|
|
#include <QJsonArray>
|
|
|
|
|
|
|
|
// console output
|
|
|
|
#include <QDebug>
|
|
|
|
// #include <iostream>
|
|
|
|
|
2024-07-26 17:49:18 +02:00
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
QGuiApplication app(argc, argv);
|
|
|
|
|
|
|
|
QQmlEngine engine;
|
|
|
|
QQmlContext *objectContext = new QQmlContext(engine.rootContext());
|
|
|
|
|
|
|
|
QQmlComponent component(&engine, "application.qml");
|
|
|
|
QObject *object = component.create(objectContext);
|
|
|
|
|
|
|
|
// ... delete object and objectContext when necessary
|
|
|
|
|
2024-07-26 19:17:16 +02:00
|
|
|
|
|
|
|
// create custom temporary event loop on stack
|
|
|
|
QEventLoop eventLoop;
|
|
|
|
|
|
|
|
// "quit()" the event-loop, when the network request "finished()"
|
|
|
|
QNetworkAccessManager mgr;
|
|
|
|
QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
|
|
|
|
|
|
|
|
QString endpoint { "https://sph-s-api.olympics.com/summer/schedules/api/ENG/schedule/discipline/ARC" };
|
|
|
|
|
|
|
|
// the HTTP request
|
|
|
|
QNetworkRequest req( (QUrl( endpoint )) );
|
|
|
|
QNetworkReply *reply = mgr.get(req);
|
|
|
|
eventLoop.exec(); // blocks stack until "finished()" has been called
|
|
|
|
|
|
|
|
if (reply->error() == QNetworkReply::NoError) {
|
|
|
|
//success
|
|
|
|
|
|
|
|
QString strReply = (QString)reply->readAll();
|
|
|
|
|
|
|
|
//parse json
|
|
|
|
// qDebug() << "Response:" << strReply;
|
|
|
|
QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8());
|
|
|
|
|
|
|
|
QJsonObject jsonObj = jsonResponse.object();
|
|
|
|
|
|
|
|
qDebug() << "Competitor:" << jsonObj["units"][0]["competitors"][0]["name"].toString();
|
|
|
|
|
|
|
|
delete reply;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
//failure
|
|
|
|
qDebug() << "Failure" <<reply->errorString();
|
|
|
|
delete reply;
|
|
|
|
}
|
|
|
|
|
2024-07-26 17:49:18 +02:00
|
|
|
return app.exec();
|
2024-06-27 12:18:32 +02:00
|
|
|
}
|