mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2025-05-21 12:18:28 +00:00
68 lines
1.3 KiB
Markdown
68 lines
1.3 KiB
Markdown
cpp-httplib
|
|
===========
|
|
|
|
A C++11 header-only HTTP library.
|
|
|
|
[The Boost Software License 1.0](http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
It's extremely easy to setup. Just include **httplib.h** file in your code!
|
|
|
|
Server Example
|
|
--------------
|
|
|
|
Inspired by [Sinatra](http://www.sinatrarb.com/) and [express](https://github.com/visionmedia/express).
|
|
|
|
```c++
|
|
#include <httplib.h>
|
|
|
|
int main(void)
|
|
{
|
|
using namespace httplib;
|
|
|
|
Server svr;
|
|
|
|
svr.get("/hi", [](const Request& req, const Response& res) {
|
|
res.set_content("Hello World!", "text/plain");
|
|
});
|
|
|
|
svr.get(R"(/numbers/(\d+))", [&](const Request& req, const Response& res) {
|
|
auto numbers = req.matches[1];
|
|
res.set_content(numbers, "text/plain");
|
|
});
|
|
|
|
svr.listen("localhost", 1234);
|
|
}
|
|
```
|
|
|
|
Client Example
|
|
--------------
|
|
|
|
```c++
|
|
#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;
|
|
}
|
|
}
|
|
```
|
|
|
|
OpenSSL Support
|
|
---------------
|
|
|
|
SSL support is available with `CPPHTTPLIB_OPENSSL_SUPPORT`. `libssl` and `libcrypto` should be linked.
|
|
|
|
```c++
|
|
#define CPPHTTPLIB_OPENSSL_SUPPORT
|
|
|
|
SSLServer svr("./key.pem", "./cert.pem");
|
|
|
|
SSLClient cli("localhost", 8080);
|
|
```
|
|
|
|
Copyright (c) 2017 Yuji Hirose. All rights reserved.
|