CHttpInterceptor.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef CHTTPINTERCEPTOR_H
  2. #define CHTTPINTERCEPTOR_H
  3. #include <QString>
  4. #include <QStringList>
  5. #include <thread>
  6. #include <mutex>
  7. #include "CHttpClient.h"
  8. #include "httpDataDef.h"
  9. #include "json/json.h"
  10. class CHttpInterceptor
  11. {
  12. public:
  13. CHttpInterceptor();
  14. ~CHttpInterceptor();
  15. void init(QString sIp, QString sPort, bool bUseHttps = false);
  16. QString getHttpUrl() const;
  17. void post(CHttpRequestPackage requestPkg);
  18. void get(CHttpRequestPackage requestPkg);
  19. void getUrl(CHttpRequestPackage requestPkg);
  20. void put(CHttpRequestPackage requestPkg);
  21. void downLoad(CHttpRequestPackage requestPkg);
  22. virtual void requestProc(const CHttpRequestPackage requestPkg)=0;
  23. protected:
  24. void initHeads(const CHttpRequestPackage &requestPkg);
  25. bool doPost(const CHttpRequestPackage &requestPkg, std::string &sResponseStr, int &nCode);
  26. bool doGet(const CHttpRequestPackage &requestPkg, std::string &sResponseStr, int &nCode);
  27. bool doPut(const CHttpRequestPackage &requestPkg, std::string &sResponseStr, int &nCode);
  28. bool downLoadFile(std::string uri, std::string sFileName, int &nResCode);
  29. private:
  30. void threadProc();
  31. std::thread m_thread;
  32. bool m_bIsRun;
  33. std::mutex m_mReqPkgMutex;
  34. std::list<CHttpRequestPackage> m_mReqPkgList;
  35. CHttpClient m_httpClient;
  36. QString m_sUrl = "";
  37. QString m_wxUrl = "";
  38. };
  39. #endif // CHTTPINTERCEPTOR_H