From 2811cc9a77c17ac03aac9c1b582040827a76b0d9 Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Tue, 27 Apr 2021 11:22:45 +0200 Subject: Squashed 'deps/cpp-httplib/' content from commit c58b005 git-subtree-dir: deps/cpp-httplib git-subtree-split: c58b00580ee66a248c2ef20334bb84319ccde310 --- example/redirect.cc | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 example/redirect.cc (limited to 'example/redirect.cc') diff --git a/example/redirect.cc b/example/redirect.cc new file mode 100644 index 0000000..b1f3939 --- /dev/null +++ b/example/redirect.cc @@ -0,0 +1,60 @@ +// +// redirect.cc +// +// Copyright (c) 2019 Yuji Hirose. All rights reserved. +// MIT License +// + +#include + +#define SERVER_CERT_FILE "./cert.pem" +#define SERVER_PRIVATE_KEY_FILE "./key.pem" + +using namespace httplib; + +int main(void) { + // HTTP server + Server http; +#ifdef CPPHTTPLIB_OPENSSL_SUPPORT + SSLServer https(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE); +#endif + + http.Get("/test", [](const Request & /*req*/, Response &res) { + res.set_content("Test\n", "text/plain"); + }); + + http.set_error_handler([](const Request & /*req*/, Response &res) { + res.set_redirect("https://localhost:8081/"); + }); + + // HTTPS server +#ifdef CPPHTTPLIB_OPENSSL_SUPPORT + https.Get("/", [=](const Request & /*req*/, Response &res) { + res.set_redirect("/hi"); + }); + + https.Get("/hi", [](const Request & /*req*/, Response &res) { + res.set_content("Hello World!\n", "text/plain"); + }); + + https.Get("/stop", [&](const Request & /*req*/, Response & /*res*/) { + https.stop(); + http.stop(); + }); +#endif + + // Run servers + auto httpThread = std::thread([&]() { http.listen("localhost", 8080); }); + +#ifdef CPPHTTPLIB_OPENSSL_SUPPORT + auto httpsThread = std::thread([&]() { https.listen("localhost", 8081); }); +#endif + + httpThread.join(); + +#ifdef CPPHTTPLIB_OPENSSL_SUPPORT + httpsThread.join(); +#endif + + return 0; +} -- cgit v1.2.3