Skip to content

Commit b6201ca

Browse files
Merge pull request #7 from lk-libs/ssl
ignoreSslErrors option has been added
2 parents 620560f + b5680a5 commit b6201ca

File tree

4 files changed

+149
-73
lines changed

4 files changed

+149
-73
lines changed

README.md

Lines changed: 54 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Modern, non-blocking and exception free, header-only HTTP Client library for C++
2323
* [POST request with form data](#post-request-with-form-data)
2424
* [POST request with JSON data](#post-request-with-json-data)
2525
* [What about others? (PUT, DELETE, PATCH)](#what-about-others-put-delete-patch)
26+
* [How to ignore SSL certificate errors?](#how-to-ignore-ssl-certificate-errors)
2627
* [Semantic Versioning](#semantic-versioning)
2728
* [Full function list](#full-function-list)
2829
* [License](#license)
@@ -336,6 +337,32 @@ int main() {
336337
```
337338

338339

340+
## How to ignore SSL certificate errors?
341+
342+
If you need to ignore SSL certificate errors for any valid reason, you can continue
343+
working by passing **"true"** value to the **"ignoreSslErrors"** variable of the
344+
HttpClient class.
345+
346+
```cpp
347+
#include <fstream>
348+
#include "libcpp-http-client.hpp"
349+
350+
using namespace lklibs;
351+
352+
int main() {
353+
354+
HttpClient httpClient;
355+
356+
// If you need to ignore SSL errors, you can set the "ignoreSslErrors" field to true
357+
httpClient.ignoreSslErrors = true;
358+
359+
auto response = httpClient.getRequest("https://api.myinvalidssl.com").get();
360+
361+
return 0;
362+
}
363+
```
364+
365+
339366
## Semantic Versioning
340367

341368
Versioning of the library is done using conventional semantic versioning. Accordingly,
@@ -363,49 +390,49 @@ overloaded versions of 5 functions in total.
363390
```cpp
364391
- getRequest
365392
- std::future<HttpResult> getRequest(const std::string &url)
366-
- std::future<HttpResult> getRequest(const std::string &url, bool returnAsBinary)
367-
- std::future<HttpResult> getRequest(const std::string &url, const std::map<std::string, std::string> &headers)
368-
- std::future<HttpResult> getRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
393+
- std::future<HttpResult> getRequest(const std::string &url, bool returnAsBinary, bool ignoreSslErrors = false)
394+
- std::future<HttpResult> getRequest(const std::string &url, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
395+
- std::future<HttpResult> getRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
369396

370397

371398
- postRequest
372399
- std::future<HttpResult> postRequest(const std::string &url)
373-
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload)
374-
- std::future<HttpResult> postRequest(const std::string &url, bool returnAsBinary)
375-
- std::future<HttpResult> postRequest(const std::string &url, const std::map<std::string, std::string> &headers)
376-
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, bool returnAsBinary)
377-
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers)
378-
- std::future<HttpResult> postRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
379-
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers)
400+
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, bool ignoreSslErrors = false)
401+
- std::future<HttpResult> postRequest(const std::string &url, bool returnAsBinary, bool ignoreSslErrors = false)
402+
- std::future<HttpResult> postRequest(const std::string &url, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
403+
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, bool returnAsBinary, bool ignoreSslErrors = false)
404+
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
405+
- std::future<HttpResult> postRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
406+
- std::future<HttpResult> postRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
380407

381408

382409
- putRequest
383410
- std::future<HttpResult> putRequest(const std::string &url)
384-
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload)
385-
- std::future<HttpResult> putRequest(const std::string &url, bool returnAsBinary)
386-
- std::future<HttpResult> putRequest(const std::string &url, const std::map<std::string, std::string> &headers)
387-
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, bool returnAsBinary)
388-
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers)
389-
- std::future<HttpResult> putRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
390-
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers)
411+
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, bool ignoreSslErrors = false)
412+
- std::future<HttpResult> putRequest(const std::string &url, bool returnAsBinary, bool ignoreSslErrors = false)
413+
- std::future<HttpResult> putRequest(const std::string &url, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
414+
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, bool returnAsBinary, bool ignoreSslErrors = false)
415+
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
416+
- std::future<HttpResult> putRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
417+
- std::future<HttpResult> putRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
391418

392419

393420
- deleteRequest
394421
- std::future<HttpResult> deleteRequest(const std::string &url)
395-
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload)
396-
- std::future<HttpResult> deleteRequest(const std::string &url, bool returnAsBinary)
397-
- std::future<HttpResult> deleteRequest(const std::string &url, const std::map<std::string, std::string> &headers)
398-
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, bool returnAsBinary)
399-
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers)
400-
- std::future<HttpResult> deleteRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
401-
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers)
422+
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, bool ignoreSslErrors = false)
423+
- std::future<HttpResult> deleteRequest(const std::string &url, bool returnAsBinary, bool ignoreSslErrors = false)
424+
- std::future<HttpResult> deleteRequest(const std::string &url, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
425+
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, bool returnAsBinary, bool ignoreSslErrors = false)
426+
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
427+
- std::future<HttpResult> deleteRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
428+
- std::future<HttpResult> deleteRequest(const std::string &url, const std::string &payload, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
402429

403430

404431
- patchRequest
405432
- std::future<HttpResult> patchRequest(const std::string &url)
406-
- std::future<HttpResult> patchRequest(const std::string &url, bool returnAsBinary)
407-
- std::future<HttpResult> patchRequest(const std::string &url, const std::map<std::string, std::string> &headers)
408-
- std::future<HttpResult> patchRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers)
433+
- std::future<HttpResult> patchRequest(const std::string &url, bool returnAsBinary, bool ignoreSslErrors = false)
434+
- std::future<HttpResult> patchRequest(const std::string &url, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
435+
- std::future<HttpResult> patchRequest(const std::string &url, bool returnAsBinary, const std::map<std::string, std::string> &headers, bool ignoreSslErrors = false)
409436
```
410437
411438

examples/main.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,20 @@ void simplePatch() {
160160
std::cout << "Data: " << response.textData << std::endl;
161161
}
162162

163+
void ignoreSslErrors() {
164+
165+
HttpClient httpClient;
166+
167+
// If you need to ignore SSL errors, you can set the "ignoreSslErrors" field to true
168+
httpClient.ignoreSslErrors = true;
169+
170+
auto response = httpClient.getRequest("https://self-signed-cert.httpbun.com").get();
171+
172+
std::cout << "Succeed: " << response.succeed << std::endl;
173+
std::cout << "Http Status Code: " << response.statusCode << std::endl;
174+
std::cout << "Data: " << response.textData << std::endl;
175+
}
176+
163177

164178
int main() {
165179

@@ -183,5 +197,7 @@ int main() {
183197

184198
simplePatch();
185199

200+
ignoreSslErrors();
201+
186202
return 0;
187203
}

0 commit comments

Comments
 (0)