Как сделать POST запрос на локальный IP из NodeMCU (ESP8266)? Здравствуйте. Есть nodejs, express, поднятый сервер на 192.168.0.100:80. Стоит POST слушатель на /test, который выводит в консоль request.body. Если сделать запрос в консоли браузера на этот ip, то все работает. Есть NodeMCU с ESP8266 подключенный к wifi, локальный ip у него 192.168.0.103. Делаю из него POST запрос на nodejs сервер и получаю fail, запрос не проходит. На внешние адреса, например http://jsonplaceholder.typicode.com/posts все приходит отлично. Все устройства работаю в одной wifi сети, подключенные к одному роутеру. Собственно вопрос по поводу сетей, ip и маршрутизации, как сделать запрос из 192.168.0.103 на 192.168.0.100/test
Для того чтобы сделать POST запрос с NodeMCU (ESP8266) на локальный IP адрес (192.168.0.100) в вашей сети, вы можете использовать следующий код:
#include <ESP8266HTTPClient.h> void setup() { Serial.begin(115200); WiFi.begin("your_network_name", "your_network_password"); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); HTTPClient http; http.begin("http://192.168.0.100/test"); // Укажите адрес вашего сервера http.addHeader("Content-Type", "application/json"); int httpCode = http.POST("{\"key\":\"value\"}"); // Замените данными, которые вы хотите отправить if (httpCode > 0) { String payload = http.getString(); Serial.println(payload); } else { Serial.println("Error on HTTP request"); } http.end(); } void loop() { }
Убедитесь, что заменили "your_network_name" и "your_network_password" на имя и пароль вашей Wi-Fi сети. Также замените данные в функции http.POST() на те, которые хотите отправить на сервер.
Если ваш запрос все еще не проходит, убедитесь, что ваш роутер разрешает внутренний трафик между устройствами внутри сети. Также убедитесь, что ваш сервер на 192.168.0.100:80 доступен для внутренних запросов.
Надеюсь, это поможет вам решить проблему с POST запросом с NodeMCU на локальный IP.
Для того чтобы сделать POST запрос с NodeMCU (ESP8266) на локальный IP адрес (192.168.0.100) в вашей сети, вы можете использовать следующий код:
#include <ESP8266HTTPClient.h>void setup() {
Serial.begin(115200);
WiFi.begin("your_network_name", "your_network_password");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
HTTPClient http;
http.begin("http://192.168.0.100/test"); // Укажите адрес вашего сервера
http.addHeader("Content-Type", "application/json");
int httpCode = http.POST("{\"key\":\"value\"}"); // Замените данными, которые вы хотите отправить
if (httpCode > 0) {
String payload = http.getString();
Serial.println(payload);
} else {
Serial.println("Error on HTTP request");
}
http.end();
}
void loop() {
}
Убедитесь, что заменили "your_network_name" и "your_network_password" на имя и пароль вашей Wi-Fi сети. Также замените данные в функции http.POST() на те, которые хотите отправить на сервер.
Если ваш запрос все еще не проходит, убедитесь, что ваш роутер разрешает внутренний трафик между устройствами внутри сети. Также убедитесь, что ваш сервер на 192.168.0.100:80 доступен для внутренних запросов.
Надеюсь, это поможет вам решить проблему с POST запросом с NodeMCU на локальный IP.