#pragma once #include #include #include #include #include namespace Qv2ray::common::network { struct HTTPResponse { QString error; QByteArray data; QList> header; }; class NetworkRequestHelper : QObject { Q_OBJECT explicit NetworkRequestHelper(QObject *parent) : QObject(parent) {}; ~NetworkRequestHelper() {}; public: static void AsyncHttpGet(const QString &url, std::function funcPtr); static HTTPResponse HttpGet(const QUrl &url); static QString GetHeader(const QList>& header, const QString& name); private: static void setAccessManagerAttributes(QNetworkRequest &request, QNetworkAccessManager &accessManager); static void setHeader(QNetworkRequest &request, const QByteArray &key, const QByteArray &value); }; } // namespace Qv2ray::common::network using namespace Qv2ray::common::network;