#ifndef UTIL_HTTPCLIENT_H #define UTIL_HTTPCLIENT_H #include #include namespace PresenceDetection { namespace Util { class HttpClient { public: HttpClient(); ~HttpClient(); HttpClient(const HttpClient&) = delete; std::string GetUrlContents(const std::string& url) const; void GetUrlSilent(const std::string& url) const; std::string GetUrlContents(const std::string& url, const std::string& cookieFile) const; void GetUrlSilent(const std::string& url, const std::string& cookieFile) const; std::string GetUrlPostContents(const std::string& url, const std::string& postData, const std::string& contentType) const; void GetUrlPostSilent(const std::string& url, const std::string& postData, const std::string& contentType) const; std::string GetUrlPostContents(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& contentType) const; void GetUrlPostSilent(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& contentType) const; std::string GetUrlPostAttachmentContents(const std::string& url, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const; void GetUrlPostAttachmentSilent(const std::string& url, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const; std::string GetUrlPostAttachmentContents(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const; void GetUrlPostAttachmentSilent(const std::string& url, const std::string& cookieFile, const std::string& postData, const std::string& filename, const std::string& fileFieldname) const; private: static size_t WriteCallback(char* data, size_t size, size_t nmemb, std::string* writerData); private: std::vector m_userAgents; }; } // namespace Util } // namespace PresenceDetection #endif // UTIL_HTTPCLIENT_H