19 #ifndef CORE_NET_HTTP_CLIENT_H_ 20 #define CORE_NET_HTTP_CLIENT_H_ 64 typedef std::chrono::duration<double>
Seconds;
69 Seconds max{Seconds::max()};
71 Seconds min{Seconds::max()};
73 Seconds mean{Seconds::max()};
75 Seconds variance{Seconds::max()};
97 virtual ~
Client() =
default;
100 bool operator==(
const Client&)
const =
delete;
102 virtual std::string uri_to_string (
const core::net::Uri& uri)
const;
105 virtual std::string url_escape(
const std::string& s)
const = 0;
108 virtual std::string base64_encode(
const std::string& s)
const = 0;
111 virtual std::string base64_decode(
const std::string& s)
const = 0;
117 virtual void run() = 0;
120 virtual void stop() = 0;
146 virtual std::shared_ptr<Request>
put(
const Request::Configuration& configuration, std::istream& payload, std::size_t size) = 0;
156 virtual std::shared_ptr<Request>
post(
const Request::Configuration& configuration,
const std::string& payload,
const std::string& type) = 0;
165 virtual std::shared_ptr<Request> post_form(
const Request::Configuration& configuration,
const std::map<std::string, std::string>& values);
195 #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.