63 lines
1.8 KiB
C++
63 lines
1.8 KiB
C++
#ifndef NETMGR_H
|
||
#define NETMGR_H
|
||
#include <qglobal.h>
|
||
#include <QObject>
|
||
#include <QMap>
|
||
#include <QMessageBox>
|
||
|
||
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<QString, QString> &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<QString, QString> &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<QNetworkReply*,QFile*> m_mpDownload;
|
||
};
|
||
|
||
extern NetMgr *g_NetMgr;
|
||
|
||
#endif // NETMGR_H
|