1 #ifndef __GPUDB__HTTP_HPP__ 2 #define __GPUDB__HTTP_HPP__ 6 #define BOOST_BIND_GLOBAL_PLACEHOLDERS 7 #include <boost/asio/ssl.hpp> 19 static const std::string
HTTP;
24 HttpUrl(
const std::string& url);
25 HttpUrl(
const std::string& protocol,
26 const std::string& host,
28 const std::string& path,
29 const std::string& query = std::string());
31 const std::string& path,
32 const std::string& query = std::string());
34 const std::string&
getUrl()
const;
37 const std::string&
getHost()
const;
39 const std::string&
getPath()
const;
48 operator std::string()
const;
61 void init(
const std::string& url);
77 static const std::string
GET;
78 static const std::string
HEAD;
79 static const std::string
POST;
84 #ifndef GPUDB_NO_HTTPS 94 #ifndef GPUDB_NO_HTTPS 107 virtual void read(
const void*& data,
size_t& length)
const;
113 #ifndef GPUDB_NO_HTTPS 114 boost::asio::ssl::context* m_sslContext;
115 bool m_bypassSslCertCheck;
119 std::string m_requestMethod;
120 std::map<std::string, std::string> m_requestHeaders;
135 virtual void read(
const void*& data,
size_t& length)
const;
138 const std::vector<uint8_t>* m_requestBody;
152 virtual void read(
const void*& data,
size_t& length)
const;
155 const std::string* m_requestBody;
171 virtual void write(
const void* data,
const size_t length);
177 std::string m_responseVersion;
178 unsigned int m_responseCode;
179 std::string m_responseMessage;
180 std::map<std::string, std::string> m_responseHeaders;
189 virtual void write(
const void* data,
const size_t length);
192 std::vector<uint8_t> m_responseBody;
201 virtual void write(
const void* data,
const size_t length);
204 std::string m_responseBody;
const std::string & getRequestMethod() const
const std::vector< uint8_t > * getRequestBody()
virtual void read(const void *&data, size_t &length) const
virtual void write(const void *data, const size_t length)
friend bool operator==(const HttpUrl &lhs, const HttpUrl &rhs)
std::map< std::string, std::string > & getRequestHeaders()
void setRequestBody(const std::string *requestBody)
boost::asio::ssl::context * getSslContext()
void setRequestMethod(const std::string &method)
const std::string & getProtocol() const
static const std::string POST
void setBypassSslCertCheck(const bool value)
const std::string & getResponseVersion() const
friend bool operator !=(const HttpUrl &lhs, const HttpUrl &rhs)
const std::string & getResponseHeader(const std::string &key) const
virtual void write(const void *data, const size_t length)
const std::string & getResponseMessage() const
void setRequestBody(const std::vector< uint8_t > *requestBody)
std::ostream & operator<<(std::ostream &stream, const HttpUrl &value)
const std::vector< uint8_t > & getResponseBody() const
void setTimeout(const size_t timeout)
virtual void read(const void *&data, size_t &length) const
const std::map< std::string, std::string > & getResponseHeaders() const
void send(HttpResponse &response)
void setUrl(const HttpUrl &url)
static const std::string HTTPS
const HttpUrl & getUrl() const
size_t getTimeout() const
const std::string & getResponseBody() const
static const std::string GET
const std::string & getRequestHeader(const std::string &key) const
static const std::string HTTP
const std::string & getHost() const
const std::string * getRequestBody()
virtual void read(const void *&data, size_t &length) const
virtual void write(const void *data, const size_t length)
void setSslContext(boost::asio::ssl::context *sslContext)
void addRequestHeader(const std::string &key, const std::string &value)
const std::string & getQuery() const
std::string getAppendedUrl(const std::string &endpoint) const
Returns a string with the passed in endpoint appended to this URL.
const std::string & getUrl() const
unsigned int getResponseCode() const
static const std::string HEAD
const std::string & getPath() const