51enum class HttpMethod { kGet, kPost, kHead, kPut, kDelete, kPatch, kOptions };
98 RequestStats&& req_stats,
99 const std::shared_ptr<DestinationStatistics>& dest_stats,
115 Request&
get(std::string url) &;
117 Request
get(std::string url) &&;
124 Request&
head(std::string url) &;
126 Request
head(std::string url) &&;
133 Request&
post(std::string url, std::string data = {}) &;
135 Request
post(std::string url, std::string data = {}) &&;
137 Request&
post(std::string url, Form&& form) &;
139 Request
post(std::string url, Form&& form) &&;
146 Request&
put(std::string url, std::string data = {}) &;
148 Request
put(std::string url, std::string data = {}) &&;
155 Request&
patch(std::string url, std::string data = {}) &;
157 Request
patch(std::string url, std::string data = {}) &&;
178 Request&
url(std::string url) &;
180 Request
url(std::string url) &&;
183 Request&
data(std::string data) &;
185 Request
data(std::string data) &&;
249 Request&
cookies(
const std::unordered_map<std::string, std::string>& cookies) &;
251 Request
cookies(
const std::unordered_map<std::string, std::string>& cookies) &&;
264 Request&
timeout(std::chrono::milliseconds timeout_ms) & {
return timeout(timeout_ms.count()
); }
266 Request
timeout(std::chrono::milliseconds timeout_ms) && {
return std::move(
this->timeout(timeout_ms.count()
)); }
305 Request&
retry(
short retries = 3,
bool on_fails =
true) &;
306 Request retry(
short retries = 3,
bool on_fails =
true) &&;
331 template <
typename T>
332 std::enable_if_t<std::is_same_v<ConnectTo, T>, Request&>
connect_to(T&&) {
333 static_assert(!
sizeof(T),
"ConnectTo argument must not be temporary, it must outlive Request");
373 void SetTestsuiteConfig(
const std::shared_ptr<
const TestsuiteConfig>& config) &;
375 void SetAllowedUrlsExtra(
const std::vector<std::string>& urls) &;
380 void SetWaitToken(
utils::impl::InternalTag,
utils::impl::WaitTokenStorageLock&&);
388 void SetCancellationPolicy(CancellationPolicy cp);
406 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
413 const std::shared_ptr<
concurrent::StringStreamQueue>& queue,
414 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
425 [[nodiscard]] std::shared_ptr<Response>
perform(
426 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
433 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
450 std::shared_ptr<RequestState> pimpl_;