mirror of
https://gitee.com/drabel/LibQQt.git
synced 2025-01-04 10:18:44 +08:00
79 lines
2.4 KiB
C++
79 lines
2.4 KiB
C++
#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
|