1 #ifndef __GPUDB__HTTP_HPP__ 2 #define __GPUDB__HTTP_HPP__ 5 #include <boost/asio/ssl.hpp> 17 static const std::string
HTTP;
22 HttpUrl(
const std::string& url);
23 HttpUrl(
const std::string& protocol,
24 const std::string& host,
26 const std::string& path,
27 const std::string& query = std::string());
29 const std::string& path,
30 const std::string& query = std::string());
32 const std::string&
getUrl()
const;
35 const std::string&
getHost()
const;
37 const std::string&
getPath()
const;
40 operator std::string()
const;
50 void init(
const std::string& url);
64 static const std::string
GET;
65 static const std::string
HEAD;
66 static const std::string
POST;
71 #ifndef GPUDB_NO_HTTPS 72 boost::asio::ssl::context* getSslContext();
76 const std::string& getRequestMethod()
const;
77 const std::string& getRequestHeader(
const std::string& key)
const;
78 std::map<std::string, std::string>& getRequestHeaders();
79 size_t getTimeout()
const;
81 #ifndef GPUDB_NO_HTTPS 82 void setSslContext(boost::asio::ssl::context* sslContext);
85 void setUrl(
const HttpUrl& url);
86 void setRequestMethod(
const std::string& method);
87 void addRequestHeader(
const std::string& key,
const std::string& value);
88 void setTimeout(
const size_t timeout);
93 virtual void read(
const void*& data,
size_t& length)
const;
99 #ifndef GPUDB_NO_HTTPS 100 boost::asio::ssl::context* m_sslContext;
104 std::string m_requestMethod;
105 std::map<std::string, std::string> m_requestHeaders;
115 const std::vector<uint8_t>* getRequestBody();
117 void setRequestBody(
const std::vector<uint8_t>* requestBody);
120 virtual void read(
const void*& data,
size_t& length)
const;
123 const std::vector<uint8_t>* m_requestBody;
132 const std::string* getRequestBody();
134 void setRequestBody(
const std::string* requestBody);
137 virtual void read(
const void*& data,
size_t& length)
const;
140 const std::string* m_requestBody;
149 const std::string& getResponseVersion()
const;
150 unsigned int getResponseCode()
const;
151 const std::string& getResponseMessage()
const;
152 const std::string& getResponseHeader(
const std::string& key)
const;
153 const std::map<std::string, std::string>& getResponseHeaders()
const;
156 virtual void write(
const void* data,
const size_t length);
162 std::string m_responseVersion;
163 unsigned int m_responseCode;
164 std::string m_responseMessage;
165 std::map<std::string, std::string> m_responseHeaders;
171 const std::vector<uint8_t>& getResponseBody()
const;
174 virtual void write(
const void* data,
const size_t length);
177 std::vector<uint8_t> m_responseBody;
183 const std::string& getResponseBody()
const;
186 virtual void write(
const void* data,
const size_t length);
189 std::string m_responseBody;
const std::string & getProtocol() const
static const std::string POST
std::ostream & operator<<(std::ostream &stream, const HttpUrl &value)
static const std::string HTTPS
static const std::string GET
static const std::string HTTP
const std::string & getHost() const
const std::string & getQuery() const
const std::string & getUrl() const
static const std::string HEAD
const std::string & getPath() const