10 <<
"ready: " << response->ready << std::endl
11 <<
"response: " << std::endl
12 << response->content << std::endl
13 <<
"error_code: " << response->error_code << std::endl
14 <<
"status_code: " << response->status_code << std::endl
15 <<
"retry_attempt: " << response->retry_attempt << std::endl
16 <<
"----------------------------------------" << std::endl;
21 for (
auto& future : futures) {
26 KURLYK_PRINT <<
"Error while retrieving async responses." << std::endl;
29 KURLYK_PRINT <<
"All async requests completed in separate thread." << std::endl;
44 KURLYK_PRINT <<
"Sending GET request with callback..." << std::endl;
51 KURLYK_PRINT <<
"Sending POST request with callback..." << std::endl;
53 post_headers.emplace(
"Custom-Header",
"HeaderValue");
55 client.
post(
"/post",
kurlyk::QueryParams(), {{
"Content-Type",
"application/json"}},
"{\"text\":\"Sample POST Content\"}",
61 KURLYK_PRINT <<
"Sending multiple async GET requests with std::future..." << std::endl;
62 std::vector<std::future<kurlyk::HttpResponsePtr>> futures;
63 for (
int i = 0; i < 3; ++i) {
67 KURLYK_PRINT <<
"Sending async POST request with std::future..." << std::endl;
69 futures.push_back(std::move(future_post));
void print_response(const kurlyk::HttpResponsePtr &response)
void handle_async_responses(std::vector< std::future< kurlyk::HttpResponsePtr > > &futures)
A client class for making HTTP requests to a specific host.
void set_rate_limit(long requests_per_period, long period_ms, RateLimitType type=RateLimitType::RL_GENERAL)
Sets the rate limit for HTTP requests.
bool post(const std::string &path, const QueryParams &query, const Headers &headers, const std::string &content, HttpResponseCallback callback)
Sends a POST request.
void set_connect_timeout(long connect_timeout)
Sets the connection timeout duration.
void set_retry_attempts(long retry_attempts, long retry_delay_ms)
Sets retry attempts and delay between retries for HTTP requests.
void set_timeout(long timeout)
Sets the timeout duration for HTTP requests.
void set_user_agent(const std::string &user_agent)
Sets the User-Agent header.
bool get(const std::string &path, const QueryParams &query, const Headers &headers, HttpResponseCallback callback)
Sends a GET request.
Main header file for the Kurlyk library, providing HTTP and WebSocket support.
void init(const bool use_async=true)
Initializes the Kurlyk library, setting up necessary managers and the network worker.
std::unique_ptr< HttpResponse > HttpResponsePtr
A unique pointer to an HttpResponse object for memory management.
void deinit()
Deinitializes the Kurlyk library, stopping the network worker and releasing resources.
utils::CaseInsensitiveMultimap Headers
Alias for HTTP headers, providing a case-insensitive unordered multimap.
utils::CaseInsensitiveMultimap QueryParams
Alias for query parameters in HTTP requests, stored case-insensitively.