You've already forked cpp-httplib
							
							
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //
 | |
| //  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;
 | |
| #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;
 | |
| }
 |