HTTPServer.cpp
#include <esp_http_server.h>
/**
* HTTP server.
* Works with ESP-IDF library internally.
*
* Usage:
* First call http.StartServer()
* Then call http.RegisterHandler(...) for all handlers
*/
class HTTPServer {
public:
HTTPServer(): conf(HTTPD_DEFAULT_CONFIG()) {
}
void StartServer() {
if (httpd_start(&server, &conf) != ESP_OK) {
ESP_LOGE("HTTP server", "Error starting server!");
}
}
void RegisterHandler(const httpd_uri_t *uri_handler) {
httpd_register_uri_handler(this->server, uri_handler);
}
httpd_handle_t server = nullptr;
httpd_config_t conf;
};使用示例:
HTTPServer_usage.cpp
// Declare server globally
HTTPServer http;
// Example handler
static const httpd_uri_t rebootHandler = {
.uri = "/api/reboot",
.method = HTTP_GET,
.handler = [](httpd_req_t *req) {
SendStatusOK(req);
delay(20);
ESP.restart();
return ESP_OK;
}
};
void setup() {
// TODO setup wifi or Ethernet
http.StartServer();
http.RegisterHandler(&myHandler);
}
按类别查看类似文章:
C/C++ Embedded ESP8266/ESP32
如果这篇文章对您有帮助,请考虑请我喝杯咖啡或通过 PayPal 捐款,以支持 TechOverflow 上新文章的研究与发布