Added redirect exampe
This commit is contained in:
parent
8098f88c90
commit
0b2c506ca4
@ -4,7 +4,7 @@ CXXFLAGS = -std=c++14 -I.. -Wall -Wextra -lpthread
|
|||||||
OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib -lssl -lcrypto
|
OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib -lssl -lcrypto
|
||||||
ZLIB_SUPPORT = -DCPPHTTPLIB_ZLIB_SUPPORT -lz
|
ZLIB_SUPPORT = -DCPPHTTPLIB_ZLIB_SUPPORT -lz
|
||||||
|
|
||||||
all: server client hello simplesvr benchmark
|
all: server client hello simplesvr redirect benchmark
|
||||||
|
|
||||||
server : server.cc ../httplib.h Makefile
|
server : server.cc ../httplib.h Makefile
|
||||||
$(CXX) -o server $(CXXFLAGS) server.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
$(CXX) -o server $(CXXFLAGS) server.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
||||||
@ -18,6 +18,9 @@ hello : hello.cc ../httplib.h Makefile
|
|||||||
simplesvr : simplesvr.cc ../httplib.h Makefile
|
simplesvr : simplesvr.cc ../httplib.h Makefile
|
||||||
$(CXX) -o simplesvr $(CXXFLAGS) simplesvr.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
$(CXX) -o simplesvr $(CXXFLAGS) simplesvr.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
||||||
|
|
||||||
|
redirect : redirect.cc ../httplib.h Makefile
|
||||||
|
$(CXX) -o redirect $(CXXFLAGS) redirect.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
||||||
|
|
||||||
benchmark : benchmark.cc ../httplib.h Makefile
|
benchmark : benchmark.cc ../httplib.h Makefile
|
||||||
$(CXX) -o benchmark $(CXXFLAGS) benchmark.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
$(CXX) -o benchmark $(CXXFLAGS) benchmark.cc $(OPENSSL_SUPPORT) $(ZLIB_SUPPORT)
|
||||||
|
|
||||||
@ -26,4 +29,4 @@ pem:
|
|||||||
openssl req -new -key key.pem | openssl x509 -days 3650 -req -signkey key.pem > cert.pem
|
openssl req -new -key key.pem | openssl x509 -days 3650 -req -signkey key.pem > cert.pem
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm server client hello simplesvr *.pem
|
rm server client hello simplesvr redirect *.pem
|
||||||
|
56
example/redirect.cc
Normal file
56
example/redirect.cc
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
//
|
||||||
|
// redirect.cc
|
||||||
|
//
|
||||||
|
// Copyright (c) 2019 Yuji Hirose. All rights reserved.
|
||||||
|
// MIT License
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <httplib.h>
|
||||||
|
|
||||||
|
#define SERVER_CERT_FILE "./cert.pem"
|
||||||
|
#define SERVER_PRIVATE_KEY_FILE "./key.pem"
|
||||||
|
|
||||||
|
using namespace httplib;
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
// HTTP server
|
||||||
|
Server http;
|
||||||
|
|
||||||
|
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
|
||||||
|
SSLServer https(SERVER_CERT_FILE, SERVER_PRIVATE_KEY_FILE);
|
||||||
|
|
||||||
|
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();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Run servers
|
||||||
|
auto httpThread = std::thread([&]() {
|
||||||
|
http.listen("localhost", 8080);
|
||||||
|
});
|
||||||
|
|
||||||
|
auto httpsThread = std::thread([&]() {
|
||||||
|
https.listen("localhost", 8081);
|
||||||
|
});
|
||||||
|
|
||||||
|
httpThread.join();
|
||||||
|
httpsThread.join();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user