CNetWork.h 1.5 KB

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