CNetWork.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #pragma once
  2. #include "IBaseCurl.h"
  3. #include <cpr/cpr.h>
  4. #include "comm.h"
  5. #define TIMEOUTE 60 * 1000
  6. class CNetWork : public IBaseCurl
  7. {
  8. public:
  9. CNetWork();
  10. ~CNetWork(void);
  11. void SetUrlArray(std::vector<ServerListUrl> data);
  12. HTTPRET GetServerNode(std::string& data);
  13. HTTPRET PostLogin(LPCSTR username, LPCSTR password, std::string& data);
  14. HTTPRET PostReg(LPCSTR username, LPCSTR password, std::string& data);
  15. HTTPRET GetSysConfigFromUser(LPCSTR username, LPCSTR password, std::string& data);
  16. HTTPRET GetSysConfig(std::string& data);
  17. void SetUrl(LPCSTR url);
  18. SStringA GetLastErrorA();
  19. SStringW GetLastErrorW();
  20. bool Download(std::string path);
  21. //
  22. HTTPRET Auth(std::string& data);
  23. HTTPRET Refresh(std::string& data);
  24. int GetHttpStatus();
  25. HTTPRET Version(std::string& data);
  26. private:
  27. std::string GetUrl(std::string path, std::vector<cpr::Parameter> parame, std::string token = "");
  28. std::string PostUrl(std::string path, std::vector<cpr::Pair> parame,std::string token = "");
  29. std::string Retrying(std::string path, std::vector<cpr::Parameter> parame, std::string token = "");
  30. void AutoToggleNode();
  31. void Init();
  32. void UnInit();
  33. std::string UpdateError(cpr::ErrorCode code,std::string msg);
  34. void initSessionPool(int szie);
  35. void DestoryOneConnSessionPool();
  36. std::shared_ptr<cpr::Session> GetSession();
  37. void pullSession(std::shared_ptr<cpr::Session> &p);
  38. private:
  39. std::mutex m_mutx;
  40. std::vector<std::string> vectorBaseurl;
  41. std::vector<std::shared_ptr<cpr::Session>> m_session_vect;
  42. std::unordered_map<std::string, std::string> keymap;
  43. cpr::Session m_session;
  44. std::string m_error_msg;
  45. HTTPRET m_http_ret;
  46. int m_http_status;
  47. std::string m_url;
  48. std::vector<ServerListUrl> m_url_list;
  49. };