1#ifndef YAZE_APP_NET_NATIVE_HTTPLIB_CLIENT_H_
2#define YAZE_APP_NET_NATIVE_HTTPLIB_CLIENT_H_
35 absl::StatusOr<HttpResponse>
Get(
36 const std::string& url,
37 const Headers& headers = {})
override;
46 absl::StatusOr<HttpResponse>
Post(
47 const std::string& url,
48 const std::string& body,
49 const Headers& headers = {})
override;
58 absl::StatusOr<HttpResponse>
Put(
59 const std::string& url,
60 const std::string& body,
61 const Headers& headers = {})
override;
69 absl::StatusOr<HttpResponse>
Delete(
70 const std::string& url,
71 const Headers& headers = {})
override;
89 absl::Status
ParseUrl(
const std::string& url,
93 std::string& path)
const;
103 const std::string& scheme,
104 const std::string& host,
Native HTTP client implementation using cpp-httplib.
absl::StatusOr< HttpResponse > Get(const std::string &url, const Headers &headers={}) override
Perform an HTTP GET request.
absl::StatusOr< std::shared_ptr< httplib::Client > > GetOrCreateClient(const std::string &scheme, const std::string &host, int port)
Create or get cached httplib client for a host.
void SetTimeout(int timeout_seconds) override
Set a timeout for HTTP requests.
Headers ConvertHeaders(const void *httplib_headers) const
Convert httplib headers to our Headers type.
absl::StatusOr< HttpResponse > Post(const std::string &url, const std::string &body, const Headers &headers={}) override
Perform an HTTP POST request.
absl::Status ParseUrl(const std::string &url, std::string &scheme, std::string &host, int &port, std::string &path) const
Parse URL into components.
absl::StatusOr< HttpResponse > Delete(const std::string &url, const Headers &headers={}) override
Perform an HTTP DELETE request.
~HttpLibClient() override
std::map< std::string, std::shared_ptr< httplib::Client > > client_cache_
absl::StatusOr< HttpResponse > Put(const std::string &url, const std::string &body, const Headers &headers={}) override
Perform an HTTP PUT request.
Abstract interface for HTTP client implementations.
std::map< std::string, std::string > Headers
HTTP headers type definition.