/* * sample http server * more detail see examples/httpd * */ #include "HttpServer.h" #include "hssl.h" int main() { HV_MEMCHECK; HttpService router; router.GET("/ping", [](HttpRequest* req, HttpResponse* resp) { return resp->String("pong"); }); router.GET("/data", [](HttpRequest* req, HttpResponse* resp) { static char data[] = "0123456789"; return resp->Data(data, 10); }); router.GET("/paths", [&router](HttpRequest* req, HttpResponse* resp) { return resp->Json(router.Paths()); }); router.POST("/echo", [](HttpRequest* req, HttpResponse* resp) { resp->content_type = req->content_type; resp->body = req->body; return 200; }); http_server_t server; server.service = &router; server.port = 8080; #if 0 server.https_port = 8443; hssl_ctx_init_param_t param; memset(¶m, 0, sizeof(param)); param.crt_file = "cert/server.crt"; param.key_file = "cert/server.key"; if (hssl_ctx_init(¶m) == NULL) { fprintf(stderr, "SSL certificate verify failed!\n"); return -20; } #endif // uncomment to test multi-processes // server.worker_processes = 4; // uncomment to test multi-threads // server.worker_threads = 4; #if 1 http_server_run(&server); #else // test http_server_stop http_server_run(&server, 0); sleep(10); http_server_stop(&server); #endif return 0; }