#ifndef QTHTTPS_H #define QTHTTPS_H #include #include #include #include #include #include class QtHttps : public QObject { Q_OBJECT public: explicit QtHttps(QObject *parent = nullptr); ~QtHttps(); bool Get(const QString &url); bool GetHead(const QString &url); void Post(const QString &url, const QByteArray &data); void downloadFile(const QString &url, const QString &filePath); bool waitFinished(int msecs = 30000); /* 等待完成 */ signals: void signal_replyFinished(); void signal_downloadProgress(qint64 bytesReceived, qint64 bytesTotal); /* 判断是否是Qt5.15.2 */ #if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) void signal_error(QNetworkReply::NetworkError code); #endif private slots: void do_replyFinished(); void do_replyReadyRead(); void do_downloadProgress(qint64 bytesReceived, qint64 bytesTotal); #if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) void do_error(QNetworkReply::NetworkError code); #endif void do_timeout(); private: bool m_isFinished = false; /* 等待完成标志位 */ QTimer m_timer; /* 超时定时器 */ QNetworkAccessManager *m_manager = nullptr; QNetworkReply *m_reply = nullptr; QFile *m_file = nullptr; /* 保存临时文件 */ }; #endif /* QTHTTPS_H */