HTTPSClient.h 639 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <cstdint>
  3. #include <string>
  4. #include <map>
  5. class HTTPSClient
  6. {
  7. public:
  8. struct ci_string_less
  9. {
  10. bool operator()(const std::string &lhs, const std::string &rhs) const;
  11. };
  12. using header_map = std::map<std::string, std::string, ci_string_less>;
  13. struct Request
  14. {
  15. Request(const std::string &url);
  16. header_map headers;
  17. std::string url;
  18. std::string postdata;
  19. enum Method
  20. {
  21. GET,
  22. POST,
  23. } method;
  24. };
  25. struct Reply
  26. {
  27. header_map headers;
  28. std::string body;
  29. int responseCode;
  30. };
  31. virtual ~HTTPSClient() {}
  32. virtual bool valid() const = 0;
  33. virtual Reply request(const Request &req) = 0;
  34. };