You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
668 B

#pragma once
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <future>
/// @Brief Http客户端
/// @Note 在主线程中调用,请求时,阻塞主线程
class HttpClientSync : public QObject {
Q_OBJECT
public:
explicit HttpClientSync(QObject* parent = nullptr);
~HttpClientSync();
std::future<std::pair<bool, QJsonDocument>>
get(const QUrl& baseUrl, const QString& token, const QMap<QString, QString>& params, int timeoutMs = 5000);
std::future<std::pair<bool, QJsonDocument>>
post(const QUrl& url, const QJsonObject& data, const QString& token = "", int timeoutMs = 5000);
};