HttpClient.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef UTIL_HTTPCLIENT_H
  2. #define UTIL_HTTPCLIENT_H
  3. #include <string>
  4. #include <vector>
  5. namespace PresenceDetection {
  6. namespace Util {
  7. class HttpClient
  8. {
  9. public:
  10. HttpClient();
  11. ~HttpClient();
  12. HttpClient(const HttpClient&) = delete;
  13. std::string GetUrlContents(const std::string& url) const;
  14. void GetUrlSilent(const std::string& url) const;
  15. std::string GetUrlContents(const std::string& url, const std::string& cookieFile) const;
  16. void GetUrlSilent(const std::string& url, const std::string& cookieFile) const;
  17. std::string GetUrlPostContents(const std::string& url, const std::string& postData, const std::string& contentType) const;
  18. void GetUrlPostSilent(const std::string& url, const std::string& postData, const std::string& contentType) const;
  19. std::string GetUrlPostContents(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& contentType) const;
  20. void GetUrlPostSilent(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& contentType) const;
  21. std::string GetUrlPostAttachmentContents(const std::string& url, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const;
  22. void GetUrlPostAttachmentSilent(const std::string& url, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const;
  23. std::string GetUrlPostAttachmentContents(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const;
  24. void GetUrlPostAttachmentSilent(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const;
  25. private:
  26. static size_t WriteCallback(char* data, size_t size, size_t nmemb, std::string* writerData);
  27. private:
  28. std::vector<std::string> m_userAgents;
  29. };
  30. } // namespace Util
  31. } // namespace PresenceDetection
  32. #endif // UTIL_HTTPCLIENT_H