tchttpservice.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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 <QHttpMultiPart>
  16. #include <QHttpPart>
  17. #include <QHttpMultiPart>
  18. class TCHttpService : public QObject
  19. {
  20. Q_OBJECT
  21. private:
  22. typedef struct {
  23. QString file_name;
  24. int share_status;
  25. QString url;
  26. qint64 size;
  27. } file_info_t;
  28. QMap<QString, file_info_t> m_fileMap;
  29. public:
  30. static TCHttpService* getInstance();
  31. void apiLogin();
  32. void apiMyfileCount();
  33. void apiMyfileNormal(int start, int count);
  34. void apiMd5(const QString& filePath);
  35. void apiUpload(const QString& filePath);
  36. void apiSharePicShare(const QString& fileName, const QString& md5);
  37. void setConfiguration(QString userName, QString firstPwd, QString domain);
  38. void setSsl(bool enable);
  39. bool getOnlineState();
  40. void setUploadNum(int nb);
  41. private:
  42. QUrl encodeUrl(QString url, QMap<QString, QString> params);
  43. void updateFileMap(QJsonObject jsonObj);
  44. signals:
  45. void signal_loginSuc();
  46. void signal_uploadSuc();
  47. void signal_shareSuc();
  48. void signal_uploadFileSec(QString url);
  49. void requestFinished(QNetworkReply* reply, QString api);
  50. private:
  51. explicit TCHttpService(QObject *parent = nullptr);
  52. static QScopedPointer<TCHttpService> m_instance;
  53. QNetworkAccessManager m_manager;
  54. QString m_token;
  55. QString m_domain;
  56. QString m_firstPwd;
  57. QString m_userName;
  58. int m_total;
  59. bool m_enableSsl = true;
  60. bool m_isOnline = false;
  61. bool m_uploadNum = 0;
  62. signals:
  63. };
  64. #endif // TCHTTPSERVICE_H