A C++ header-only HTTP/HTTPS server and client library

httplib.h

#http #server #client #header-only #cpp #c++11 #library #small #lightweight

yhirose 123edd5a29 Added 'const char*' version of set_content. 10 years ago
example 34e5903167 Changed examples to use the generic lambda. 11 years ago
test efc579b14e Changed to use getaddrinfo. 11 years ago
.gitignore 292d1aeff7 added simplesvr sample. 12 years ago
README.md 6120367290 Fixed documentation. 10 years ago
httplib.h 123edd5a29 Added 'const char*' version of set_content. 10 years ago

README.md

cpp-httplib

A C++11 header-only HTTP library.

The Boost Software License 1.0

It's extremely easy to setup. Just include httplib.h file in your code!

Server Example

Inspired by Sinatra and express.

#include <httplib.h>

int main(void)
{
    using namespace httplib;

    Server svr;

    svr.get("/hi", [](const auto& req, auto& res) {
        res.set_content("Hello World!", "text/plain");
    });

    svr_.get(R"(/numbers/(\d+))", [&](const auto& req, auto& res) {
        string numbers = req.matches[1];
        res.set_content(numbers, "text/plain");
    });

    svr.listen("localhost", 1234);
}

Client Example

#include <httplib.h>
#include <iostream>

int main(void)
{
    httplib::Client cli("localhost", 1234);

    auto res = cli.get("/hi");
    if (res && res->status == 200) {
        std::cout << res->body << std::endl;
    }
}

Copyright (c) 2014 Yuji Hirose. All rights reserved.