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

httplib.h

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

yhirose 6120367290 Fixed documentation. %!s(int64=10) %!d(string=hai) anos
example 34e5903167 Changed examples to use the generic lambda. %!s(int64=11) %!d(string=hai) anos
test efc579b14e Changed to use getaddrinfo. %!s(int64=11) %!d(string=hai) anos
.gitignore 292d1aeff7 added simplesvr sample. %!s(int64=12) %!d(string=hai) anos
README.md 6120367290 Fixed documentation. %!s(int64=10) %!d(string=hai) anos
httplib.h 79bb0be0ca Fixed close problem win _open_oshandle on Windows. %!s(int64=11) %!d(string=hai) anos

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.