Однофайловая кроссплатформенная библиотека HTTP/HTTPS на C++11 только с заголовками.
Она очень проста в настройке. Просто включите файл httplib.h в свой код!
Важно
Эта библиотека использует «блокирующий» сокетный ввод/вывод. Если вы ищете библиотеку с «неблокирующим» вводом/выводом через сокеты, то это не та библиотека, которая вам нужна.
Код: Выделить всё
//#define CPPHTTPLIB_OPENSSL_SUPPORT
#include <iostream>
#include <string>
#include "httplib.h"
/*
// HTTP
httplib::Server svr;
// HTTPS
httplib::SSLServer svr;
svr.Get("/hi", [](const httplib::Request &, httplib::Response &res) {
res.set_content("Hello World!", "text/plain");
});
svr.listen("0.0.0.0", 8080);
*/
int main() {
httplib::Server server;
server.Get("/hi", [](const httplib::Request &, httplib::Response &res) {
res.set_content("Hello World!", "text/plain");
});
server.Post("/", [](const httplib::Request& req, httplib::Response& res) {
// Обрабатываем тело запроса
std::string body = req.body;
std::cout << "Received POST data: " << body << "\n";
// Успешно завершенный запрос
res.set_content("File uploaded successfully", "text/plain");
});
std::cout << "Listening on port 8080...\n";
server.listen("0.0.0.0", 8080);
return 0;
}
Код: Выделить всё
g++ -std=c++11 -o web4 web4.cpp -lpthread