Kurlyk
Toggle main menu visibility
Loading...
Searching...
No Matches
delayed_request_example.cpp
Go to the documentation of this file.
1
#include <iostream>
2
#define KURLYK_AUTO_INIT 0
3
#include <
kurlyk.hpp
>
4
#include <future>
5
#include <chrono>
6
7
void
print_response
(
const
kurlyk::HttpResponsePtr
& response) {
8
KURLYK_PRINT
9
<<
"ready: "
<< response->ready << std::endl
10
<<
"response: "
<< std::endl
11
<< response->content << std::endl
12
<<
"error_code: "
<< response->error_code << std::endl
13
<<
"status_code: "
<< response->status_code << std::endl
14
<<
"retry_attempt: "
<< response->retry_attempt << std::endl
15
<<
"connect_time: "
<< response->connect_time << std::endl
16
<<
"appconnect_time: "
<< response->appconnect_time << std::endl
17
<<
"pretransfer_time: "
<< response->pretransfer_time << std::endl
18
<<
"starttransfer_time: "
<< response->starttransfer_time << std::endl
19
<<
"total_time: "
<< response->total_time << std::endl
20
<<
"----------------------------------------"
<< std::endl;
21
}
22
23
int
main
() {
24
kurlyk::init
(
true
);
25
kurlyk::HttpClient
client(
"https://httpbin.org"
);
26
27
client.
set_user_agent
(
"KurlykClient/1.0"
);
28
client.
set_timeout
(15);
// Set a higher timeout to handle delayed responses
29
client.
set_connect_timeout
(5);
30
client.
set_retry_attempts
(2, 1000);
31
32
int
delay = 5;
// Adjust delay as needed (in seconds)
33
std::string path =
"/delay/"
+ std::to_string(delay);
34
35
// Using std::future for delayed GET request
36
KURLYK_PRINT
<<
"Sending delayed GET request with "
<< delay <<
" seconds delay..."
<< std::endl;
37
auto
future_response = client.
get
(path,
kurlyk::QueryParams
(),
kurlyk::Headers
());
38
39
// Process response when it completes
40
auto
response = future_response.get();
41
print_response
(response);
42
43
KURLYK_PRINT
<<
"Delayed request completed."
<< std::endl;
44
kurlyk::deinit
();
45
return
0;
46
}
kurlyk::HttpClient
Concrete HTTP client for making requests to a specific host.
Definition
HttpClient.hpp:17
kurlyk::HttpClient::set_connect_timeout
void set_connect_timeout(long connect_timeout)
Sets the connection timeout duration.
Definition
HttpClient.hpp:557
kurlyk::HttpClient::set_retry_attempts
void set_retry_attempts(long retry_attempts, long retry_delay_ms)
Sets retry attempts and delay between retries for HTTP requests.
Definition
HttpClient.hpp:504
kurlyk::HttpClient::set_timeout
void set_timeout(long timeout)
Sets the timeout duration for HTTP requests.
Definition
HttpClient.hpp:551
kurlyk::HttpClient::set_user_agent
void set_user_agent(const std::string &user_agent)
Sets the User-Agent header.
Definition
HttpClient.hpp:527
kurlyk::HttpClient::get
bool get(const std::string &path, const QueryParams &query, const Headers &headers, HttpResponseCallback callback)
Sends a GET request.
Definition
HttpClient.hpp:681
print_response
void print_response(const kurlyk::HttpResponsePtr &response)
Definition
delayed_request_example.cpp:7
main
int main()
Definition
delayed_request_example.cpp:23
kurlyk.hpp
Main header file for the Kurlyk library, providing HTTP and WebSocket support.
kurlyk::init
void init(const bool use_async=true)
Initializes the Kurlyk library, setting up necessary managers and the network worker.
Definition
runtime.hpp:13
kurlyk::HttpResponsePtr
std::unique_ptr< HttpResponse > HttpResponsePtr
Owning pointer to an HTTP response.
Definition
HttpResponse.hpp:36
kurlyk::deinit
void deinit()
Deinitializes the Kurlyk library, stopping async processing or cleaning up synchronous state.
Definition
runtime.hpp:26
kurlyk::Headers
utils::CaseInsensitiveMultimap Headers
Alias for HTTP headers, providing a case-insensitive unordered multimap.
Definition
CaseInsensitiveMultimap.hpp:62
kurlyk::QueryParams
utils::CaseInsensitiveMultimap QueryParams
Alias for query parameters in HTTP requests, stored case-insensitively.
Definition
CaseInsensitiveMultimap.hpp:65
KURLYK_PRINT
#define KURLYK_PRINT
Definition
print_utils.hpp:8
examples
delayed_request_example.cpp
Generated by
1.17.0