18 #ifndef CORE_NET_HTTP_CLIENT_H_ 19 #define CORE_NET_HTTP_CLIENT_H_ 63 typedef std::chrono::duration<double>
Seconds;
68 Seconds max{Seconds::max()};
70 Seconds min{Seconds::max()};
72 Seconds mean{Seconds::max()};
74 Seconds variance{Seconds::max()};
96 virtual ~
Client() =
default;
99 bool operator==(
const Client&)
const =
delete;
101 virtual std::string uri_to_string (
const core::net::Uri& uri)
const;
104 virtual std::string url_escape(
const std::string& s)
const = 0;
107 virtual std::string base64_encode(
const std::string& s)
const = 0;
110 virtual std::string base64_decode(
const std::string& s)
const = 0;
116 virtual void run() = 0;
119 virtual void stop() = 0;
145 virtual std::shared_ptr<Request>
put(
const Request::Configuration& configuration, std::istream& payload, std::size_t size) = 0;
155 virtual std::shared_ptr<Request>
post(
const Request::Configuration& configuration,
const std::string& payload,
const std::string& type) = 0;
164 virtual std::shared_ptr<Request> post_form(
const Request::Configuration& configuration,
const std::map<std::string, std::string>& values);
176 #endif // CORE_NET_HTTP_CLIENT_H_
The Request class encapsulates a request for a web resource.
std::chrono::duration< double > Seconds
The Uri class encapsulates the components of a URI.
Collection of known content types.
Summarizes timing information about completed requests.
CORE_NET_DLL_PUBLIC std::shared_ptr< Client > make_client()
Dispatches to the default implementation and returns a client instance.
HttpMethodNotSupported is thrown if the underlying impl. does not support the requested HTTP method...
The Configuration struct encapsulates all options for creating requests.
#define CORE_NET_DLL_PUBLIC
Summarizes error conditions.