Skip to content

jumanji144/SimpleCURL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple cURL request wrapper C++

This project is a very simple 1 header solution to make easy http requests via cURL.

Features

  • Easy to use
  • Wrapping of cURL functions
  • Usage of maps
  • Cookie wrapping
  • Usage of modern C++ features

Usage

Requires c++17 standard and above An example can be seen in the example.cpp file.

#include "curl_request.hpp"
#include <iostream>

int main() {
    // simple request to google.com
    Request request("https://www.google.com");
    request.initalize();
    request.set_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
    request.set_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
    request.set_header("Accept-Language", "en-US,en;q=0.9");
    request.set_header("Accept-Encoding", "gzip, deflate, br");

    request.set_cookie("__cfduid", "d41d8cd98f00b204e9800998ecf8427e");
    request.set_cookie("_ga", "GA1.2.1809898981.1544009800");
    request.set_cookie("_gid", "GA1.2.1809898981.1544009800");
    request.set_cookie("_gat", "1");
    request.set_cookie("_hjid", "1544009800");
    request.set_cookie("_hjIncludedInSample", "1");
    Response response = request.get();

    // print data and headers
    std::cout << response.data << std::endl;
    for (auto[key, value] : response.headers) // print response headers
    {
        std::cout << key << ": " << value << std::endl;
    }
}

the types headers_t and cookies_t are simple maps that can be modified and used as you wish. the api will process all the data and construct a cURL request.

The object can be reused for multiple requests and the headers and cookies will be kept in memory.

Linking

The linking of curl is up to the user, if the curl is not directly linked on the system and there is a manual installed version of curl, define the path to it via #define MANUAL_CURL_PATH "path/to/curl" the rest of the linking (such as libraries like libcurl) are left to the user.

About

Simple cURL request wrapper for C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages