http_server_test.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * sample http server
  3. * more detail see examples/httpd
  4. *
  5. */
  6. #include "HttpServer.h"
  7. int main() {
  8. HV_MEMCHECK;
  9. HttpService router;
  10. router.GET("/ping", [](HttpRequest* req, HttpResponse* resp) {
  11. return resp->String("pong");
  12. });
  13. router.GET("/data", [](HttpRequest* req, HttpResponse* resp) {
  14. static char data[] = "0123456789";
  15. return resp->Data(data, 10);
  16. });
  17. router.GET("/paths", [&router](HttpRequest* req, HttpResponse* resp) {
  18. return resp->Json(router.Paths());
  19. });
  20. router.POST("/echo", [](HttpRequest* req, HttpResponse* resp) {
  21. resp->content_type = req->content_type;
  22. resp->body = req->body;
  23. return 200;
  24. });
  25. http_server_t server;
  26. server.port = 8080;
  27. // uncomment to test multi-processes
  28. // server.worker_processes = 4;
  29. // uncomment to test multi-threads
  30. // server.worker_threads = 4;
  31. server.service = &router;
  32. #if 1
  33. http_server_run(&server);
  34. #else
  35. // test http_server_stop
  36. http_server_run(&server, 0);
  37. sleep(10);
  38. http_server_stop(&server);
  39. #endif
  40. return 0;
  41. }