50enum class HttpMethod { kGet, kPost, kHead, kPut, kDelete, kPatch, kOptions };
91 using Cookies = std::unordered_map<std::string, std::string, utils::
StrCaseHash>;
97 RequestStats&& req_stats,
98 const std::shared_ptr<DestinationStatistics>& dest_stats,
114 Request&
get(std::string url) &;
116 Request
get(std::string url) &&;
123 Request&
head(std::string url) &;
125 Request
head(std::string url) &&;
132 Request&
post(std::string url, std::string data = {}) &;
134 Request
post(std::string url, std::string data = {}) &&;
136 Request&
post(std::string url, Form&& form) &;
138 Request
post(std::string url, Form&& form) &&;
145 Request&
put(std::string url, std::string data = {}) &;
147 Request
put(std::string url, std::string data = {}) &&;
154 Request&
patch(std::string url, std::string data = {}) &;
156 Request
patch(std::string url, std::string data = {}) &&;
177 Request&
url(std::string url) &;
179 Request
url(std::string url) &&;
182 Request&
data(std::string data) &;
184 Request
data(std::string data) &&;
248 Request&
cookies(
const std::unordered_map<std::string, std::string>& cookies) &;
250 Request
cookies(
const std::unordered_map<std::string, std::string>& cookies) &&;
263 Request&
timeout(std::chrono::milliseconds timeout_ms) & {
return timeout(timeout_ms.count()
); }
265 Request
timeout(std::chrono::milliseconds timeout_ms) && {
return std::move(
this->timeout(timeout_ms.count()
)); }
304 Request&
retry(
short retries = 3,
bool on_fails =
true) &;
305 Request retry(
short retries = 3,
bool on_fails =
true) &&;
330 template <
typename T>
331 std::enable_if_t<std::is_same_v<ConnectTo, T>, Request&>
connect_to(T&&) {
332 static_assert(!
sizeof(T),
"ConnectTo argument must not be temporary, it must outlive Request");
360 void SetTestsuiteConfig(
const std::shared_ptr<
const TestsuiteConfig>& config) &;
362 void SetAllowedUrlsExtra(
const std::vector<std::string>& urls) &;
367 void SetWaitToken(utils::
impl::InternalTag, utils::
impl::WaitTokenStorageLock&&);
375 void SetCancellationPolicy(CancellationPolicy cp);
390 utils::
impl::SourceLocation location = utils::
impl::SourceLocation::Current()
397 const std::shared_ptr<
concurrent::StringStreamQueue>& queue,
398 utils::
impl::SourceLocation location = utils::
impl::SourceLocation::Current()
406 [[nodiscard]] std::shared_ptr<Response>
perform(
407 utils::
impl::SourceLocation location = utils::
impl::SourceLocation::Current()
424 std::shared_ptr<RequestState> pimpl_;