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

httplib.h

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

yhirose 62f824e204 Fixed problem with reading request body data. 10 gadi atpakaļ
example 34e5903167 Changed examples to use the generic lambda. 11 gadi atpakaļ
test efc579b14e Changed to use getaddrinfo. 11 gadi atpakaļ
.gitignore 292d1aeff7 added simplesvr sample. 12 gadi atpakaļ
README.md 6120367290 Fixed documentation. 10 gadi atpakaļ
httplib.h 62f824e204 Fixed problem with reading request body data. 10 gadi atpakaļ

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.