84 lines
1.9 KiB
C++
84 lines
1.9 KiB
C++
#ifndef TCHTTPSERVICE_H
|
|
#define TCHTTPSERVICE_H
|
|
|
|
#define DEBUG 1
|
|
|
|
#include <QObject>
|
|
#include <QNetworkAccessManager>
|
|
#include <QUrlQuery>
|
|
#include <QCryptographicHash>
|
|
#include <QNetworkReply>
|
|
#include <QJsonDocument>
|
|
#include <QJsonObject>
|
|
#include <QJsonObject>
|
|
#include <QJsonArray>
|
|
#include <QFile>
|
|
#include <QFileInfo>
|
|
#include <QPixmap>
|
|
#include <QHttpMultiPart>
|
|
#include <QHttpPart>
|
|
#include <QHttpMultiPart>
|
|
#include <QHash>
|
|
#include "urldatabase.h"
|
|
|
|
class TCHttpService : public QObject
|
|
{
|
|
Q_OBJECT
|
|
private:
|
|
|
|
public:
|
|
static TCHttpService* getInstance();
|
|
|
|
void apiLogin();
|
|
#if 0
|
|
void apiMyfileCount();
|
|
void apiMyfileNormal(int start, int count);
|
|
void apiMd5(const QString& filePath);
|
|
#endif
|
|
void apiUpload(const QString& filePath);
|
|
void apiSharePicShare(const QString& fileName, const QString& md5);
|
|
void setConfiguration(QString userName, QString firstPwd, QString domain);
|
|
void setSsl(bool enable);
|
|
bool getOnlineState();
|
|
void setUploadNum(int nb);
|
|
|
|
void downloadImage(const QString& requestId, const QUrl& imageUrl);
|
|
|
|
private:
|
|
|
|
QUrl encodeUrl(QString url, QMap<QString, QString> params);
|
|
|
|
signals:
|
|
void signal_loginSuc();
|
|
void signal_shareSuc();
|
|
void signal_uploadFileSec(QString url);
|
|
void requestFinished(QNetworkReply* reply, QString api);
|
|
|
|
void signal_imageDownloaded(const QString& requestId, const QPixmap& pixmap);
|
|
void signal_downloadFailed(const QString& requestId, const QString& error);
|
|
private:
|
|
explicit TCHttpService(QObject *parent = nullptr);
|
|
|
|
static QScopedPointer<TCHttpService> m_instance;
|
|
|
|
QNetworkAccessManager m_manager;
|
|
|
|
QString m_token;
|
|
QString m_domain;
|
|
QString m_firstPwd;
|
|
QString m_userName;
|
|
int m_total;
|
|
bool m_enableSsl = true;
|
|
|
|
bool m_isOnline = false;
|
|
|
|
bool m_uploadNum = 0;
|
|
|
|
QHash<QNetworkReply*, QString> m_pendingRequests;
|
|
|
|
private slots:
|
|
void slot_downloadFinished(QNetworkReply* reply);
|
|
};
|
|
|
|
#endif // TCHTTPSERVICE_H
|