1#ifndef YAZE_APP_NET_HTTP_CLIENT_H_
2#define YAZE_APP_NET_HTTP_CLIENT_H_
7#include "absl/status/status.h"
8#include "absl/status/statusor.h"
16using Headers = std::map<std::string, std::string>;
58 virtual absl::StatusOr<HttpResponse>
Get(
59 const std::string& url,
60 const Headers& headers = {}) = 0;
69 virtual absl::StatusOr<HttpResponse>
Post(
70 const std::string& url,
71 const std::string& body,
72 const Headers& headers = {}) = 0;
81 virtual absl::StatusOr<HttpResponse>
Put(
82 const std::string& url,
83 const std::string& body,
86 return absl::UnimplementedError(
"PUT method not implemented");
95 virtual absl::StatusOr<HttpResponse>
Delete(
96 const std::string& url,
99 return absl::UnimplementedError(
"DELETE method not implemented");
Abstract interface for HTTP client implementations.
virtual absl::StatusOr< HttpResponse > Get(const std::string &url, const Headers &headers={})=0
Perform an HTTP GET request.
virtual absl::StatusOr< HttpResponse > Put(const std::string &url, const std::string &body, const Headers &headers={})
Perform an HTTP PUT request.
virtual ~IHttpClient()=default
int GetTimeout() const
Get the current timeout setting.
virtual void SetTimeout(int timeout_seconds)
Set a timeout for HTTP requests.
virtual absl::StatusOr< HttpResponse > Delete(const std::string &url, const Headers &headers={})
Perform an HTTP DELETE request.
virtual absl::StatusOr< HttpResponse > Post(const std::string &url, const std::string &body, const Headers &headers={})=0
Perform an HTTP POST request.
std::map< std::string, std::string > Headers
HTTP headers type definition.
HTTP response structure containing status, body, and headers.
bool IsServerError() const
bool IsClientError() const