@@ -70,10 +70,13 @@ using namespace lklibs;
7070
7171int main () {
7272
73- HttpRequest httpRequest;
73+ HttpRequest httpRequest("https://api.myproject.com") ;
7474
7575 // The simplest but slowest method if multiple calls will be made
76- auto response = httpRequest.getRequest("https://api.myproject.com?param1=7¶m2=test").get();
76+ auto response = httpRequest
77+ .setQueryString("param1=7¶m2=test")
78+ .send()
79+ .get();
7780
7881 std::cout << "Succeed: " << response.succeed << std::endl;
7982 std::cout << "Http Status Code: " << response.statusCode << std::endl;
@@ -98,13 +101,17 @@ using namespace lklibs;
98101
99102int main () {
100103
101- HttpRequest httpRequest;
102-
103- auto response1 = httpRequest.getRequest("https://api.myproject.com/foo").get();
104- auto response2 = httpRequest.getRequest("https://api.myproject.com/bar").get();
105- auto response3 = httpRequest.getRequest("https://api.myproject.com/baz").get();
106- auto response4 = httpRequest.getRequest("https://api.myproject.com/qux").get();
107- auto response5 = httpRequest.getRequest("https://api.myproject.com/quux").get();
104+ HttpRequest httpRequest1("https://api.myproject.com/foo");
105+ HttpRequest httpRequest2("https://api.myproject.com/bar");
106+ HttpRequest httpRequest3("https://api.myproject.com/baz");
107+ HttpRequest httpRequest4("https://api.myproject.com/qux");
108+ HttpRequest httpRequest5("https://api.myproject.com/quux");
109+
110+ auto response1 = httpRequest1.send().get();
111+ auto response2 = httpRequest2.send().get();
112+ auto response3 = httpRequest3.send().get();
113+ auto response4 = httpRequest4.send().get();
114+ auto response5 = httpRequest5.send().get();
108115
109116 // Takes 2.5 seconds in total
110117
@@ -124,13 +131,17 @@ using namespace lklibs;
124131
125132int main () {
126133
127- HttpRequest httpRequest;
128-
129- auto future1 = httpRequest.getRequest("https://api.myproject.com/foo");
130- auto future2 = httpRequest.getRequest("https://api.myproject.com/bar");
131- auto future3 = httpRequest.getRequest("https://api.myproject.com/baz");
132- auto future4 = httpRequest.getRequest("https://api.myproject.com/qux");
133- auto future5 = httpRequest.getRequest("https://api.myproject.com/quux");
134+ HttpRequest httpRequest1("https://api.myproject.com/foo");
135+ HttpRequest httpRequest2("https://api.myproject.com/bar");
136+ HttpRequest httpRequest3("https://api.myproject.com/baz");
137+ HttpRequest httpRequest4("https://api.myproject.com/qux");
138+ HttpRequest httpRequest5("https://api.myproject.com/quux");
139+
140+ auto future1 = httpRequest.send();
141+ auto future2 = httpRequest.send();
142+ auto future3 = httpRequest.send();
143+ auto future4 = httpRequest.send();
144+ auto future5 = httpRequest.send();
134145
135146 auto response1 = future1.get();
136147 auto response2 = future2.get();
@@ -166,9 +177,9 @@ using namespace lklibs;
166177
167178int main () {
168179
169- HttpRequest httpRequest;
180+ HttpRequest httpRequest("https://www.myinvalidurl.com") ;
170181
171- auto response = httpRequest.getRequest("https://www.myinvalidurl.com" ).get();
182+ auto response = httpRequest.send( ).get();
172183
173184 // Instead of throwing an exception, the succeed field of the response object is set to false
174185 std::cout << "Succeed: " << response.succeed << std::endl;
@@ -200,10 +211,13 @@ using namespace lklibs;
200211
201212int main () {
202213
203- HttpRequest httpRequest;
214+ HttpRequest httpRequest("https://api.myproject.com/image/7") ;
204215
205- // If you need to retrieve binary data such as an image, just pass the "returnAsBinary" parameter as true
206- auto response = httpRequest.getRequest("https://api.myproject.com/image/7", true).get();
216+ // If you need to retrieve binary data such as an image, just call the "returnAsBinary" method before send
217+ auto response = httpRequest
218+ .returnAsBinary()
219+ .send()
220+ .get();
207221
208222 std::cout << "Succeed: " << response.succeed << std::endl;
209223 std::cout << "Http Status Code: " << response.statusCode << std::endl;
@@ -229,16 +243,15 @@ using namespace lklibs;
229243
230244int main () {
231245
232- HttpRequest httpRequest;
233-
234- // You can send custom headers in a string/string map
235- auto headers = std::map<std::string, std::string>();
236-
237- headers["Custom-Header1"] = "value1";
238- headers["Custom-Header2"] = "value2";
239-
240- auto response = httpRequest.getRequest("https://api.myproject.com?param1=7¶m2=test", headers).get();
241-
246+ HttpRequest httpRequest("https://api.myproject.com?param1=7¶m2=test");
247+
248+ // You can send custom headers as key-value pairs
249+ auto response = httpRequest
250+ .addHeader("Custom-Header1", "value1")
251+ .addHeader("Custom-Header2", "value2")
252+ .send()
253+ .get();
254+
242255 std::cout << "Succeed: " << response.succeed << std::endl;
243256
244257 return 0;
@@ -259,12 +272,14 @@ using namespace lklibs;
259272
260273int main () {
261274
262- HttpRequest httpRequest;
275+ HttpRequest httpRequest("https://api.myproject.com") ;
263276
264277 // You can send a POST request with form data in the payload
265- std::string payload = "param1=7¶m2=test";
266-
267- auto response = httpRequest.postRequest("https://api.myproject.com", payload).get();
278+ auto response = httpRequest
279+ .setMethod(HttpMethod::POST)
280+ .setPayload("param1=7¶m2=test")
281+ .send()
282+ .get();
268283
269284 std::cout << "Succeed: " << response.succeed << std::endl;
270285 std::cout << "Http Status Code: " << response.statusCode << std::endl;
@@ -288,16 +303,15 @@ using namespace lklibs;
288303
289304int main () {
290305
291- HttpRequest httpRequest;
292-
293- std::string payload = R"({"param1": 7, "param2": "test"})";
294-
306+ HttpRequest httpRequest("https://api.myproject.com");
307+
295308 // You need to send the "Content-Type" as "application/json" in the HTTP Header, if you need to send json data in the payload
296- auto headers = std::map<std::string, std::string>();
297-
298- headers["Content-Type"] = "application/json";
299-
300- auto response = httpRequest.postRequest("https://api.myproject.com", payload, headers).get();
309+ auto response = httpRequest
310+ .setMethod(HttpMethod::POST)
311+ .setPayload(R"({"param1": 7, "param2": "test"})")
312+ .addHeader("Content-Type", "application/json")
313+ .send()
314+ .get();
301315
302316 std::cout << "Succeed: " << response.succeed << std::endl;
303317 std::cout << "Http Status Code: " << response.statusCode << std::endl;
@@ -320,13 +334,29 @@ using namespace lklibs;
320334
321335int main () {
322336
323- HttpRequest httpRequest ;
337+ HttpRequest httpRequest1("https://api.myproject.com") ;
324338
325- std::string payload = "param1=7¶m2=test";
339+ auto future1 = httpRequest
340+ .setMethod(HttpMethod::PUT)
341+ .setPayload("param1=7¶m2=test")
342+ .send()
343+ .get();
344+
345+ HttpRequest httpRequest2("https://api.myproject.com");
326346
327- auto future1 = httpRequest.putRequest("https://api.myproject.com", payload);
328- auto future2 = httpRequest.deleteRequest("https://api.myproject.com", payload);
329- auto future3 = httpRequest.patchRequest("https://api.myproject.com?param1=7¶m2=test");
347+ auto future2 = httpRequest
348+ .setMethod(HttpMethod::DELETE_)
349+ .setPayload("param1=7¶m2=test")
350+ .send()
351+ .get();
352+
353+ HttpRequest httpRequest3("https://api.myproject.com");
354+
355+ auto future3 = httpRequest
356+ .setMethod(HttpMethod::PATCH)
357+ .setQueryString("param1=7¶m2=test")
358+ .send()
359+ .get();
330360
331361 auto response1 = future1.get();
332362 auto response2 = future2.get();
@@ -351,12 +381,10 @@ using namespace lklibs;
351381
352382int main () {
353383
354- HttpRequest httpRequest;
355-
356- // If you need to ignore SSL errors, you can set the "ignoreSslErrors" field to true
357- httpRequest.ignoreSslErrors = true;
384+ HttpRequest httpRequest("https://api.myinvalidssl.com");
358385
359- auto response = httpRequest.getRequest("https://api.myinvalidssl.com").get();
386+ // If you need to ignore SSL errors, you can call "ignoreSslErrors" method before sending the request
387+ auto response = httpRequest.ignoreSslErrors().send().get();
360388
361389 return 0;
362390}
@@ -381,58 +409,21 @@ section to the documentation.
381409
382410## Full function list
383411
384- You can find the complete list of functions in the library below. In fact, they are just
385- overloaded versions of 5 functions in total .
412+ You can find the complete list of functions in the library below. Since all methods except
413+ send return the class itself, they can be added one after the other like a chain .
386414
387415> [ !TIP]
388416> All methods and parameters descriptions are also available within the code as comment for IDEs.
389417
390418``` cpp
391- - getRequest
392- - std::future<HttpResult> getRequest (const std::string &url)
393- - std::future<HttpResult > getRequest(const std::string &url, bool returnAsBinary)
394- - std::future<HttpResult > getRequest(const std::string &url, const std::map<std::string, std::string> &headers)
395- - std::future<HttpResult > getRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
396-
397-
398- - postRequest
399- - std::future<HttpResult > postRequest(const std::string &url)
400- - std::future<HttpResult > postRequest(const std::string &url, const std::string &payload)
401- - std::future<HttpResult > postRequest(const std::string &url, bool returnAsBinary)
402- - std::future<HttpResult > postRequest(const std::string &url, const std::map<std::string, std::string> &headers)
403- - std::future<HttpResult > postRequest(const std::string &url, const std::string &payload, bool returnAsBinary)
404- - std::future<HttpResult > postRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers)
405- - std::future<HttpResult > postRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
406- - std::future<HttpResult > postRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers)
407-
408-
409- - putRequest
410- - std::future<HttpResult > putRequest(const std::string &url)
411- - std::future<HttpResult > putRequest(const std::string &url, const std::string &payload)
412- - std::future<HttpResult > putRequest(const std::string &url, bool returnAsBinary)
413- - std::future<HttpResult > putRequest(const std::string &url, const std::map<std::string, std::string> &headers)
414- - std::future<HttpResult > putRequest(const std::string &url, const std::string &payload, bool returnAsBinary)
415- - std::future<HttpResult > putRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers)
416- - std::future<HttpResult > putRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
417- - std::future<HttpResult > putRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers)
418-
419-
420- - deleteRequest
421- - std::future<HttpResult > deleteRequest(const std::string &url)
422- - std::future<HttpResult > deleteRequest(const std::string &url, const std::string &payload)
423- - std::future<HttpResult > deleteRequest(const std::string &url, bool returnAsBinary)
424- - std::future<HttpResult > deleteRequest(const std::string &url, const std::map<std::string, std::string> &headers)
425- - std::future<HttpResult > deleteRequest(const std::string &url, const std::string &payload, bool returnAsBinary)
426- - std::future<HttpResult > deleteRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers)
427- - std::future<HttpResult > deleteRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
428- - std::future<HttpResult > deleteRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers)
429-
430-
431- - patchRequest
432- - std::future<HttpResult > patchRequest(const std::string &url)
433- - std::future<HttpResult > patchRequest(const std::string &url, bool returnAsBinary)
434- - std::future<HttpResult > patchRequest(const std::string &url, const std::map<std::string, std::string> &headers)
435- - std::future<HttpResult > patchRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
419+ - HttpRequest &setMethod (const HttpMethod &method)
420+ - HttpRequest &setQueryString(const std::string &queryString)
421+ - HttpRequest &setPayload(const std::string &payload)
422+ - HttpRequest &returnAsBinary()
423+ - HttpRequest &ignoreSslErrors()
424+ - HttpRequest &addHeader(const std::string &key, const std::string &value)
425+ - std::future<HttpResult > send() noexcept
426+
436427```
437428
438429
0 commit comments