2019-06-26 07:55:44 +07:00
2019-06-25 13:19:47 +07:00
2019-06-26 07:55:44 +07:00
2019-06-22 06:13:04 +07:00
2019-06-22 06:13:04 +07:00
2019-06-22 06:13:04 +07:00
2019-06-25 13:19:47 +07:00
2019-06-22 06:13:04 +07:00
2019-06-26 07:55:44 +07:00

curly.hpp

Simple cURL C++17 wrapper

travis appveyor codecov language license paypal

Installation

coming soon!

Examples

#include <curly.hpp/curly.hpp>
namespace net = curly_hpp;

// creates and hold a separate thread for automatically update async requests
net::auto_performer performer;

// also, you can update requests manually from your favorite thread
net::perform();

GET Requests

// makes a GET request and async send it
auto request = net::request_builder()
    .method(net::methods::get)
    .url("http://www.httpbin.org/get")
    .send();

// synchronous waits and get a response
auto response = request.get();

// prints results
std::cout << "Status code: " << response.code() << std::endl;
std::cout << "Content type: " << response.headers()["content-type"] << std::endl;
std::cout << "Body content: " << response.content().as_string_view() << std::endl;

// Status code: 200
// Content type: application/json
// Body content: {
//     "args": {},
//     "headers": {
//         "Accept": "*/*",
//         "Host": "www.httpbin.org",
//         "User-Agent": "cURL/7.54.0"
//     },
//     "origin": "37.195.66.134, 37.195.66.134",
//     "url": "https://www.httpbin.org/get"
// }

POST Requests

auto request = net::request_builder()
    .method(net::methods::post)
    .url("http://www.httpbin.org/post")
    .header("Content-Type", "application/json")
    .content(R"({"hello" : "world"})")
    .send();

auto response = request.get();
std::cout << "Status code: " << response.code() << std::endl;
std::cout << "Body content: " << response.content().as_string_view() << std::endl;

// Status code: 200
// Body content: {
//     "args": {},
//     "data": "{\"hello\" : \"world\"}",
//     "files": {},
//     "form": {},
//     "headers": {
//         "Accept": "*/*",
//         "Content-Length": "19",
//         "Content-Type": "application/json",
//         "Host": "www.httpbin.org",
//         "User-Agent": "cURL/7.54.0"
//     },
//     "json": {
//         "hello": "world"
//     },
//     "origin": "37.195.66.134, 37.195.66.134",
//     "url": "https://www.httpbin.org/post"
// }

API

coming soon!

Languages
C++ 97.8%
CMake 2.2%