43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include "networkmanager.h"
|
|
#include "QStandardPaths"
|
|
#include <QFile>
|
|
#include <QGuiApplication>
|
|
#include <QJsonDocument>
|
|
#include <QNetworkAccessManager>
|
|
#include <QNetworkReply>
|
|
|
|
NetworkManager *NetworkManager::m_instance;
|
|
|
|
NetworkManager::NetworkManager(QObject *parent) : QObject{parent} {}
|
|
|
|
NetworkManager *NetworkManager::Instance() {
|
|
if (m_instance != nullptr) {
|
|
return m_instance;
|
|
}
|
|
m_instance = new NetworkManager();
|
|
return m_instance;
|
|
}
|
|
|
|
void NetworkManager::fetchJSONfromAPI(QUrl url, QJsonDocument &doc)
|
|
{
|
|
qDebug() << "Fetch URL::" << url.toDisplayString();
|
|
QNetworkAccessManager m_manager;
|
|
QNetworkRequest request(url);
|
|
QNetworkReply *reply = m_manager.get(request);
|
|
QEventLoop loop;
|
|
connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
|
|
loop.exec();
|
|
if (reply->error() == QNetworkReply::NoError)
|
|
{
|
|
QByteArray response = reply->readAll();
|
|
doc = QJsonDocument::fromJson(response);
|
|
}
|
|
else
|
|
{
|
|
qDebug() << "Invalid JSON response:: " << reply->errorString();
|
|
}
|
|
|
|
reply->deleteLater();
|
|
}
|
|
|