server.on()
是在 ESP8266 或 ESP32 的 Arduino 开发环境中用于设置 HTTP 请求处理程序的函数。它用于定义当接收到特定 HTTP 请求时应该执行的操作。
server.on()
函数通常有两个参数:
-
事件名称(Event Name):这是一个字符串,指定了要处理的事件类型。在 HTTP 服务器中,常见的事件类型包括 HTTP 请求方法(如 "GET"、"POST" 等)以及特定的路由路径(如 "/hello")。
-
处理函数(Handler Function):这是一个函数,指定了当事件发生时应该执行的操作。处理函数通常会接收一个参数,这个参数是一个回调函数,用于发送 HTTP 响应。
下面是一个示例:
server.on("/hello", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "text/plain", "Hello, World!"); });
在这个示例中:
- 事件名称是
"/hello"
,表示当收到 HTTP 请求的路径是 "/hello" 时应该执行这个处理程序。 - HTTP 请求方法是
HTTP_GET
,表示只有当收到 GET 请求时才会执行这个处理程序。 - 处理函数是一个匿名 Lambda 函数,它接收一个
AsyncWebServerRequest *
类型的参数,代表了接收到的 HTTP 请求。在这个示例中,它发送一个 HTTP 状态码为 200(表示成功),内容类型为 "text/plain",内容为 "Hello, World!" 的 HTTP 响应。
通过 server.on()
函数,可以设置多个不同的路由路径和事件类型的处理程序,以实现不同的功能,例如处理不同路径下的 HTTP 请求,或根据请求方法执行不同的操作。