tchttpservice.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 <QPixmapCache>
  21. #include <QDir>
  22. #include "urldatabase.h"
  23. class TCHttpService : public QObject
  24. {
  25. Q_OBJECT
  26. private:
  27. public:
  28. static TCHttpService* getInstance();
  29. void apiLogin();
  30. #if 0
  31. void apiMyfileCount();
  32. void apiMyfileNormal(int start, int count);
  33. void apiMd5(const QString& filePath);
  34. #endif
  35. void apiUpload(const QString& filePath);
  36. void setConfiguration(QString userName, QString firstPwd, QString domain);
  37. void setSsl(bool enable);
  38. bool getOnlineState();
  39. void setUploadNum(int nb);
  40. void downloadImage(const QString& requestId, const QUrl& imageUrl);
  41. private:
  42. QUrl encodeUrl(QString url, QMap<QString, QString> params);
  43. void cleanOldCacheFiles();
  44. bool getCachedImage(const QUrl& imageUrl, QPixmap& pixmap);
  45. QString getCacheFilePath(const QUrl& imageUrl);
  46. void cacheImage(const QUrl& imageUrl, const QPixmap& pixmap);
  47. signals:
  48. void signal_loginSuc();
  49. void signal_shareSuc();
  50. void signal_uploadFileSec(QString url);
  51. void requestFinished(QNetworkReply* reply, QString api);
  52. void signal_imageDownloaded(const QString& requestId, const QPixmap& pixmap);
  53. void signal_downloadFailed(const QString& requestId, const QString& error);
  54. void signal_progressUpdate(int);
  55. private:
  56. explicit TCHttpService(QObject *parent = nullptr);
  57. static QScopedPointer<TCHttpService> m_instance;
  58. QNetworkAccessManager m_manager;
  59. QString m_token;
  60. QString m_domain;
  61. QString m_firstPwd;
  62. QString m_userName;
  63. int m_memory_cache_size_kb = 10240;
  64. int m_disk_cache_size_mb = 100;
  65. int m_max_cache_days = 30;
  66. int m_total;
  67. bool m_enableSsl = true;
  68. bool m_isOnline = false;
  69. bool m_uploadNum = 0;
  70. QHash<QNetworkReply*, QString> m_pendingRequests;
  71. private slots:
  72. void slot_downloadFinished(QNetworkReply* reply);
  73. };
  74. #endif // TCHTTPSERVICE_H