tchttpservice.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef TCHTTPSERVICE_H
  2. #define TCHTTPSERVICE_H
  3. #define DEBUG 1
  4. #include <QObject>
  5. #include <QNetworkAccessManager>
  6. #include <QUrlQuery>
  7. #include <QCryptographicHash>
  8. #include <QNetworkReply>
  9. #include <QJsonDocument>
  10. #include <QJsonObject>
  11. #include <QJsonObject>
  12. #include <QJsonArray>
  13. #include <QFile>
  14. #include <QFileInfo>
  15. #include <QPixmap>
  16. #include <QHttpMultiPart>
  17. #include <QHttpPart>
  18. #include <QHttpMultiPart>
  19. #include <QHash>
  20. #include "urldatabase.h"
  21. class TCHttpService : public QObject
  22. {
  23. Q_OBJECT
  24. private:
  25. public:
  26. static TCHttpService* getInstance();
  27. void apiLogin();
  28. #if 0
  29. void apiMyfileCount();
  30. void apiMyfileNormal(int start, int count);
  31. void apiMd5(const QString& filePath);
  32. #endif
  33. void apiUpload(const QString& filePath);
  34. void apiSharePicShare(const QString& fileName, const QString& md5);
  35. void setConfiguration(QString userName, QString firstPwd, QString domain);
  36. void setSsl(bool enable);
  37. bool getOnlineState();
  38. void setUploadNum(int nb);
  39. void downloadImage(const QString& requestId, const QUrl& imageUrl);
  40. private:
  41. QUrl encodeUrl(QString url, QMap<QString, QString> params);
  42. signals:
  43. void signal_loginSuc();
  44. void signal_shareSuc();
  45. void signal_uploadFileSec(QString url);
  46. void requestFinished(QNetworkReply* reply, QString api);
  47. void signal_imageDownloaded(const QString& requestId, const QPixmap& pixmap);
  48. void signal_downloadFailed(const QString& requestId, const QString& error);
  49. private:
  50. explicit TCHttpService(QObject *parent = nullptr);
  51. static QScopedPointer<TCHttpService> m_instance;
  52. QNetworkAccessManager m_manager;
  53. QString m_token;
  54. QString m_domain;
  55. QString m_firstPwd;
  56. QString m_userName;
  57. int m_total;
  58. bool m_enableSsl = true;
  59. bool m_isOnline = false;
  60. bool m_uploadNum = 0;
  61. QHash<QNetworkReply*, QString> m_pendingRequests;
  62. private slots:
  63. void slot_downloadFinished(QNetworkReply* reply);
  64. };
  65. #endif // TCHTTPSERVICE_H