CNetWork.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. HTTPRET GetloginByUrl(LPCSTR key, std::string& data);
  12. void SetUrlArray(std::vector<ServerListUrl> data);
  13. HTTPRET GetServerNode(std::string& data);
  14. HTTPRET PostLogin(LPCSTR username, LPCSTR password, std::string& data);
  15. HTTPRET PostReg(LPCSTR username, LPCSTR password, std::string& data);
  16. HTTPRET GetSysConfigFromUser(LPCSTR username, LPCSTR password, std::string& data);
  17. HTTPRET GetSysConfig(std::string& data);
  18. void SetUrl(LPCSTR url);
  19. SStringA GetLastErrorA();
  20. SStringW GetLastErrorW();
  21. bool Download(std::string path);
  22. //
  23. HTTPRET Auth(std::string& data);
  24. HTTPRET Refresh(std::string& data);
  25. int GetHttpStatus();
  26. HTTPRET GetMySub(std::string& data);
  27. HTTPRET Version(std::string& data);
  28. private:
  29. std::string GetUrl(std::string path, std::vector<cpr::Parameter> parame, std::string token = "");
  30. std::string PostUrl(std::string path, std::vector<cpr::Pair> parame,std::string token = "");
  31. std::string Retrying(std::string path, std::vector<cpr::Parameter> parame, std::string token = "");
  32. void AutoToggleNode();
  33. void Init();
  34. void UnInit();
  35. std::string UpdateError(cpr::ErrorCode code,std::string msg);
  36. void initSessionPool(int szie);
  37. void DestoryOneConnSessionPool();
  38. std::shared_ptr<cpr::Session> GetSession();
  39. void pullSession(std::shared_ptr<cpr::Session> &p);
  40. private:
  41. std::mutex m_mutx;
  42. std::vector<std::string> vectorBaseurl;
  43. std::vector<std::shared_ptr<cpr::Session>> m_session_vect;
  44. std::unordered_map<std::string, std::string> keymap;
  45. cpr::Session m_session;
  46. std::string m_error_msg;
  47. HTTPRET m_http_ret;
  48. int m_http_status;
  49. std::string m_url;
  50. std::vector<ServerListUrl> m_url_list;
  51. };