1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00
LibQQt/src/network/qqtwebaccessmanager.h

79 lines
2.4 KiB
C
Raw Normal View History

2017-11-22 19:22:53 +08:00
#ifndef QQTWEBWORKCLIENT_H
#define QQTWEBWORKCLIENT_H
#include <QNetworkAccessManager>
#include <QNetworkReply>
//import this struct will not build fail
#include <QNetworkProxy>
#include <QSslError>
#include <qqt-qt.h>
#include <qqt-local.h>
#include <qqtcore.h>
class QQTSHARED_EXPORT QQtWebAccessSession : public QObject
{
Q_OBJECT
public:
explicit QQtWebAccessSession(QObject* parent = 0) :
QObject(parent) {}
virtual ~QQtWebAccessSession() {}
QNetworkReply* m_pNetworkReply; //封装请求返回信息
QTimer* m_pTimer; //请求超时计时器
QString m_strUrl; //记录当前请求的url
/**
* @brief m_sessionName
* talk with whom, which protocol, req content, all represented by this name;
*/
QString m_sessionName;
} ;
/**
* @brief The QQtWebworkClient class
* One Ftp Http ...
* Multi QNetworkAccessManager
* Multi New Protocol QWebSocket
* need ssl
* Qt team supportedSchemes
*/
class QQTSHARED_EXPORT QQtWebAccessManager : public QNetworkAccessManager
{
Q_OBJECT
public:
explicit QQtWebAccessManager(QObject* parent = 0);
QNetworkReply* getReplyHandler(QString& strUrl) {}
void sendGetRequest(QString& strUrl);
void sendPostRequest(QString& strUrl);
signals:
void updateUploadProgress(QNetworkReply* reply, qint64 bytesSent, qint64 bytesTotal);
void updateDownloadProgress(QNetworkReply* reply, qint64 bytesReceived, qint64 bytesTotal);
//reply->readAll but maybe not all data once
void readyRead(QNetworkReply* reply);
//reply->readAll all data once in theory
void replyFinished(QNetworkReply* reply);
void replyTimeOut(QNetworkReply* reply);
public slots:
private slots:
void finished(QNetworkReply* reply);
void authenticationRequired(QNetworkReply*, QAuthenticator*);
void proxyAuthenticationRequired(QNetworkProxy, QAuthenticator*);
void sslErrors(QNetworkReply*, QList<QSslError>);
void networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility);
void networkSessionConnected();
void localReplyTimeOut();
void localReadyRead();
void localUpdateUploadProgress(qint64 bytesSent, qint64 bytesTotal);
void localUpdateDownloadProgress(qint64 bytesReceived, qint64 bytesTotal);
private:
QList<QQtWebAccessSession*> m_listWebWorkSession;
};
#endif // QQTWEBWORKCLIENT_H