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

79 lines
2.4 KiB
C++
Raw 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 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