89 RequestStats&& req_stats,
90 const std::shared_ptr<DestinationStatistics>& dest_stats,
92 impl::PluginPipeline& plugin_pipeline,
104 Request&
get(std::string url) &;
105 Request get(std::string url) &&;
110 Request&
head(std::string url) &;
111 Request head(std::string url) &&;
116 Request&
post(std::string url, std::string data = {}) &;
117 Request post(std::string url, std::string data = {}) &&;
119 Request&
post(std::string url, Form&& form) &;
120 Request post(std::string url, Form&& form) &&;
125 Request&
put(std::string url, std::string data = {}) &;
126 Request put(std::string url, std::string data = {}) &&;
132 Request&
patch(std::string url, std::string data = {}) &;
133 Request patch(std::string url, std::string data = {}) &&;
137 Request delete_method() &&;
140 Request delete_method(std::string url) &&;
143 Request delete_method(std::string url, std::string data) &&;
147 Request set_custom_http_request_method(std::string method) &&;
150 Request&
url(std::string url) &;
151 Request url(std::string url) &&;
153 Request&
data(std::string data) &;
154 Request data(std::string data) &&;
157 Request form(Form&& form) &&;
160 Request headers(
const Headers& headers) &&;
162 Request&
headers(
const std::initializer_list<std::pair<std::string_view, std::string_view>>& headers) &;
163 Request headers(
const std::initializer_list<std::pair<std::string_view, std::string_view>>& headers) &&;
166 Request http_auth_type(
HttpAuthType value,
bool auth_only, std::string_view user, std::string_view password) &&;
169 Request proxy_headers(
const Headers& headers) &&;
171 Request&
proxy_headers(
const std::initializer_list<std::pair<std::string_view, std::string_view>>& headers) &;
172 Request proxy_headers(
const std::initializer_list<std::pair<std::string_view, std::string_view>>& headers) &&;
175 Request user_agent(
const std::string& value) &&;
177 Request&
proxy(
const std::string& value) &;
178 Request proxy(
const std::string& value) &&;
184 Request cookies(
const Cookies& cookies) &&;
186 Request&
cookies(
const std::unordered_map<std::string, std::string>& cookies) &;
187 Request cookies(
const std::unordered_map<std::string, std::string>& cookies) &&;
190 Request follow_redirects(
bool follow =
true) &&;
193 Request timeout(
long timeout_ms) &&;
194 Request& timeout(std::chrono::milliseconds timeout_ms) & {
return timeout(timeout_ms.count()
); }
195 Request timeout(std::chrono::milliseconds timeout_ms) && {
return std::move(
this->timeout(timeout_ms.count()
)); }
198 Request verify(
bool verify =
true) &&;
200 Request&
ca_info(
const std::string& file_path) &;
201 Request ca_info(
const std::string& file_path) &&;
207 Request crl_file(
const std::string& file_path) &&;
224 Request&
retry(
short retries = 3,
bool on_fails =
true) &;
225 Request retry(
short retries = 3,
bool on_fails =
true) &&;
231 Request unix_socket_path(
const std::string& path) &&;
235 Request use_ipv4() &&;
238 Request use_ipv6() &&;
243 Request connect_to(
const ConnectTo& connect_to) &&;
245 template <
typename T>
246 std::enable_if_t<std::is_same_v<ConnectTo, T>, Request&> connect_to(T&&) {
247 static_assert(!
sizeof(T),
"ConnectTo argument must not be temporary, it must outlive Request");
255 Request SetLoggedUrl(std::string url) &&;
261 Request SetDestinationMetricName(
const std::string& destination) &&;
265 void SetTestsuiteConfig(
const std::shared_ptr<
const TestsuiteConfig>& config) &;
267 void SetAllowedUrlsExtra(
const std::vector<std::string>& urls) &;
276 Request DisableReplyDecoding() &&;
278 void SetCancellationPolicy(CancellationPolicy cp);
295 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
303 const std::shared_ptr<
concurrent::StringStreamQueue>& queue,
304 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
314 [[nodiscard]] std::shared_ptr<Response>
perform(
315 utils::impl::SourceLocation location =
utils::impl::SourceLocation::Current()
320 const std::string& GetUrl() && =
delete;
324 const std::string& GetData() && =
delete;
330 std::shared_ptr<RequestState> pimpl_;