Skip to content

Commit 7b17aff

Browse files
committed
refactor(httpclient): 抽离HttpRequestOptions结构体统一管理请求配置
将原HttpClient内的RequestOptions结构体抽为独立的HttpRequestOptions, 并通过别名复用内部类型定义,减少重复代码,提升代码可维护性
1 parent 4d71491 commit 7b17aff

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

src/HttpClient/httpclient.hpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,32 @@
1111
// 同步等待 / 超时返回的错误码(QJsonValue 中的 "error" 字段)
1212
inline constexpr int NETWORK_TIMEOUT_ERROR = -1;
1313

14+
struct HttpRequestOptions
15+
{
16+
using JsonCallback = LifecycleCallback<const QJsonObject &>;
17+
using ProgressCallback = LifecycleCallback<qint64, qint64>;
18+
using ResultHook = std::function<QJsonObject(const QJsonObject &)>;
19+
20+
int timeout = -1;
21+
bool verifyCertificate = true;
22+
JsonCallback callback = {};
23+
ProgressCallback progressCallback = {};
24+
ResultHook resultHook = {};
25+
};
26+
1427
class HttpClient : public QNetworkAccessManager
1528
{
1629
Q_OBJECT
1730

1831
public:
19-
using JsonCallback = LifecycleCallback<const QJsonObject &>;
20-
using ProgressCallback = LifecycleCallback<qint64, qint64>;
32+
using RequestOptions = HttpRequestOptions;
33+
using JsonCallback = HttpRequestOptions::JsonCallback;
34+
using ProgressCallback = HttpRequestOptions::ProgressCallback;
35+
using ResultHook = HttpRequestOptions::ResultHook;
2136
using HttpHeaders = QHash<QString, QString>;
22-
using ResultHook = std::function<QJsonObject(const QJsonObject &)>;
2337
enum class Method : int { GET, POST, PUT, DELETE };
2438
Q_ENUM(Method)
2539

26-
// 通用请求选项:超时、证书校验、完成回调、进度回调、结果钩子
27-
struct RequestOptions
28-
{
29-
int timeout = -1;
30-
bool verifyCertificate = true;
31-
JsonCallback callback = {};
32-
ProgressCallback progressCallback = {};
33-
ResultHook resultHook = {};
34-
};
35-
3640
explicit HttpClient(QObject *parent = nullptr);
3741
~HttpClient() override;
3842

0 commit comments

Comments
 (0)