#ifndef NETMGR_H #define NETMGR_H #include #include #include #include class QNetworkAccessManager; class QNetworkReply; class QFile; class QNetworkRequest; class NetMgr:public QObject { Q_OBJECT signals: void sigNetMgr(QString sAddr,const QVariant& variant); public: static NetMgr& instance(); NetMgr(QObject* parent = nullptr); ~NetMgr(); public: //请求文件名列表 void RequestFileList(const QString& sAddr); //请求文件信息 void RequestFileInfo(const QString& sAddr); //下载文件 void RequestDownload(const QString& sUrl, const QString& sFileName, const QString& sFileSavePath); void RequestChannelInfo(const QString& sAddr); public: //数据请求方式 void PostMultiPart(QNetworkRequest& req, QMap &postData); void PostJson(QNetworkRequest& req, QJsonObject &postData); void PostData(QNetworkRequest& req, QByteArray &postData); void DownLoad(QNetworkRequest& req,const QString& sFileSavePath); void GetData(QNetworkRequest& req); void AddMultiPartSignature(QNetworkRequest& req, QMap &postData); void AddJsonSignature(QNetworkRequest& req, QJsonObject &postData); void AddDataSignature(QNetworkRequest& req, QByteArray &postData); void AddSignature(QNetworkRequest& req, QString &sSrcKey); void DetectNet(); private slots: //网络请求结束响应 void httpFinished(QNetworkReply * reply); private: //解析数据 void parseData(const QByteArray& szData, const QString& sUrlPath, QString sAddr); //给发起的每条HTTP请求绑定一个IP地址,区分是谁发起的HTTP请求。 void setReqUserAttr(QNetworkRequest& req,QVariant attr); private: QNetworkAccessManager *m_netMgr; QMap m_mpDownload; }; extern NetMgr *g_NetMgr; #endif // NETMGR_H