CNetWork.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #pragma once
  2. #include "IBaseCurl.h"
  3. #include <cpr/cpr.h>
  4. #include "comm.h"
  5. #define TIMEOUTE 15 * 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. bool isHttpsError;
  46. bool isHttpS;
  47. HTTPRET m_http_ret;
  48. int m_http_status;
  49. std::string m_url;
  50. std::vector<ServerListUrl> m_url_list;
  51. };