#include "ioutils.hpp" #include #include #include #include namespace ioutils { QNetworkAccessManager networkManager; } void ioutils::getJson(QUrl target, QList> headers, std::function callback) { QNetworkRequest req(target); for (auto header : headers) { req.setRawHeader(header.first.toUtf8(), header.second.toUtf8()); } QNetworkReply *reply = networkManager.get(req); QObject::connect(reply, &QNetworkReply::finished, [reply, callback] { QByteArray data = reply->readAll(); callback(QJsonDocument::fromJson(data), data, reply); reply->deleteLater(); }); } void ioutils::postJson(QUrl target, QList> headers, QByteArray body, std::function callback) { QNetworkRequest req(target); for (auto header : headers) { req.setRawHeader(header.first.toUtf8(), header.second.toUtf8()); } QNetworkReply *reply = networkManager.post(req, body); QObject::connect(reply, &QNetworkReply::finished, [reply, callback] { QByteArray data = reply->readAll(); callback(QJsonDocument::fromJson(data), data, reply); delete reply; }); } void ioutils::getData(QUrl target, QList> headers, std::function callback) { QNetworkRequest req(target); for (auto header : headers) { req.setRawHeader(header.first.toUtf8(), header.second.toUtf8()); } QNetworkReply *reply = networkManager.get(req); QObject::connect(reply, &QNetworkReply::finished, [reply, callback] { callback(reply->readAll(), reply); delete reply; }); } void ioutils::postData(QUrl target, QList> headers, QByteArray body, std::function callback) { QNetworkRequest req(target); for (auto header : headers) { req.setRawHeader(header.first.toUtf8(), header.second.toUtf8()); } QNetworkReply *reply = networkManager.post(req, body); QObject::connect(reply, &QNetworkReply::finished, [reply, callback] { callback(reply->readAll(), reply); delete reply; }); }