问题:在运行 ESP32 脚本的第一分钟,post
请求会产生HTTPC_ERROR_CONNECTION_REFUSED
,因此没有数据到达服务器。在第一分钟之后,一些请求丢失了,但大多数请求每 2 秒到达服务器一次(应该如此)。
向服务器发送数据的函数:
void sendPostData(String data) {
// Send the post data to the server
http.begin(SERVER_IP); // Begin the HTTP connection
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.POST("val=" + data);
http.writeToStream(&Serial);
http.end();
}
节点 JS 服务器:
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/', function (req, res) {
console.log(req.body);
res.end();
});
app.listen(80);
例如,如果我使用测试网站接收不是我的服务器的 POST 请求,则不会requestcatcher.com
丢失任何请求。反之亦然,如果我使用网站发送 POST 请求,hurl.eu
那么我的服务器就没有任何问题。
这是 ESP32 发出的 post 请求:
POST / HTTP/1.0
Host: sadasdasd.requestcatcher.com
Connection: close
Accept-Encoding: identity;q=1,chunked;q=0.1,*;q=0
Connection: close
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
User-Agent: ESP32HTTPClient