diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/main.cpp | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/src/main/main.cpp b/src/main/main.cpp index 52a6c2d..cddb26b 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -3,6 +3,24 @@  #include <QQmlContext>  #include <QQmlComponent> +// 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> +  int main(int argc, char *argv[])  {      QGuiApplication app(argc, argv); @@ -15,5 +33,41 @@ int main(int argc, char *argv[])      // ... delete object and objectContext when necessary + +   // 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; +    } +      return app.exec();  } | 
