以下代码获得的服务器响应为-1。
我在做什么错了?我做了很多研究,这是建议的代码。
我已经用Postman测试了服务器代码,并且工作正常,因此必须是其他代码。
使用的图书馆为ESP8266HTTPClient.h
ESP8266代码
void loop() {
HTTPClient http;
http.begin("http://localhost:3003/record");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.POST("Message");
String payload = http.getString();
Serial.println(httpCode); // -1
Serial.println(payload); // nothing
http.end();
}
Node Express服务器
var express = require("express");
var router = express.Router();
router.post("/record", function(req, res) {
let message = req.body;
console.log(message);
res.status(200).send({
message: message
});
});
module.exports = router;
还尝试了带有GET
请求的其他API。仍然不起作用。
void loop() {
HTTPClient http;
http.begin("https://jsonplaceholder.typicode.com/posts/1");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.GET();
String payload = http.getString();
Serial.println(httpCode); // -1
Serial.println(payload); // nothing
http.end();
}
答案 0 :(得分:0)
查看您的网址:
那是什么意思?
localhost 是特殊IP地址的缩写-127.0.0.1-表示“此主机”
您没有在ESP8266上运行要连接的服务器,因此无法在其中使用localhost(ESP8266可能无法解析名称 localhost )。
您需要将 localhost 替换为运行Node Express代码的服务器的名称或IP地址。