esp8266_server.on("/button", HTTP_POST, handleButton());http——post
时间: 2024-03-23 19:39:55 浏览: 143
ESP8266之HTTP请求
这段代码创建了一个 HTTP POST 请求处理器,当客户端向 `/button` 发送 HTTP POST 请求时,会调用 `handleButton()` 函数进行处理。在 `handleButton()` 函数中,你可以读取 POST 请求中的数据并进行处理,例如向串口通信输出数据。
以下是一个示例代码:
```c++
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
ESP8266WebServer server(80);
void handleButton() {
// 读取 POST 请求中的数据
String buttonId = server.arg("buttonId");
// 处理数据,例如向串口通信输出按钮的 ID
Serial.println("Button " + buttonId + " pressed!");
// 发送响应
server.send(200, "text/plain", "Button ID received.");
}
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 连接 WiFi 网络
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// 处理 HTTP POST 请求
server.on("/button", HTTP_POST, handleButton);
// 启动 Web 服务器
server.begin();
}
void loop() {
// 处理 Web 请求
server.handleClient();
}
```
在网页中,你可以使用以下 JavaScript 代码发送 HTTP POST 请求:
```javascript
// 获取按钮的 ID
var buttonId = document.getElementById("myButton").id;
// 发送 HTTP POST 请求
fetch('/button', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'buttonId=' + buttonId
}).then(function(response) {
console.log('Button ID received.');
}).catch(function(error) {
console.error(error);
});
```
这段代码会向服务器发送一个 HTTP POST 请求,其中包含按钮的 ID。在服务器上,你可以读取 POST 请求中的数据,并进行处理。在这个示例中,我们向串口通信输出按钮的 ID。
阅读全文