3500/NetMgr.h
2023-10-19 14:15:31 +08:00

63 lines
1.8 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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