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

httplib.h

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

yhirose cb473e8534 Fixed decode problem with form-urlencoded data. 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 cb473e8534 Fixed decode problem with form-urlencoded data. 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.