переменную не объявлял
А до этого что выдавало?
в самые первые разы была пустая страница, get запрос выдавал код 200, а отправка json 404
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ArduinoJson.h>
const char* ssid = "wifi";
const char* password = "password";
ESP8266WebServer server(80);
const char* SR_SET_CONFIG = "/";
const int CONFIG_SIZE = 1024;
void setup() {
Serial.begin(115200);
delay(10);
// Подключение к Wi-Fi сети
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Начало сервера
server.on(SR_SET_CONFIG, HTTP_POST, handleSetConfig);
server.begin();
Serial.println("Server started");
}
void loop() {
server.handleClient();
}
void handleSetConfig() {
if (server.hasArg("plain") == false) {
server.send(200, "text/plain", "Body not received");
Serial.println("Failed to save configuration data, no data");
return;
}
String json = server.arg("plain");
DynamicJsonDocument doc(CONFIG_SIZE);
DeserializationError error = deserializeJson(doc, json);
if (error) {
server.send(200, "text/plain", "Invalid JSON data");
Serial.println("Failed to save configuration data, invalid json data");
Serial.println(error.f_str());
return;
}
// Здесь вы можете обработать JSON-данные
// Например, вывести их в серийный порт:
serializeJsonPretty(doc, Serial);
Serial.println();
// Отправить ответ клиенту
server.send(200, "text/plain", "Configuration data saved");
}
я предполагаю, что нужно поменять 9 и 32 строчку. Так как SR_SET_CONFIG = “/”, то esp начинает обработку post только после того как он придет на /, а в 1с указывается только ip
Нет. “/” означает, что после IP ничего нету. Этот слэш означает корень, корневой каталог
Ну сделайте const char* SR_SET_CONFIG = "/test";
, а в 1С укажите команду ip/test
. Хотя разницы быть не должно
Я в есп полный ноль (только тестировал в примерах), но веб кое-как знаю. Адрес должен быть обработан кем-то / чем-то. Например, site.com/ будет обработан site.com/index.(php | html | shtml | htm | etc), то есть каким то обработчиком с именем index и каким-то разрешенным разрешением, например, html.
Либо можно явно указать обработчик.
Что-то я теряюсь (не понимаю) как тут вообще привязка к обработчику идет?
эта патамушшта ты нихрена в серверах на ESP не разбираешься, я тоже )))
Классно. Оба не разбираемся. Пошли шашлык замутим, чтоль? А то у нас жара и как бэ низзяяя (а хочется)
у нас сегодня целый день скорые с мигалками шёркают, +38 в тени было, может даже больше
У нас +/- тоже самое. Это повод твой отказа в шашлыках???!!!
у меня только нарзан для него есть )))
Да пофик. Хоть в помидорах (самый вкусный шашлык что я пробовал).
Барана сам прирежу, если твой буддизм это запрещает (как буддисты вообще выжЫли?). Но баран с тебя )))
эпично
У него указан
Я же спросил - а раньше как было? Что вы хотите, переходя по ссылке, если ваш сервер на esp никак этот переход не отрабатывает и никакой страницы не выдает?
Раньше была белая страница. Но это скорее всего из-за этих строчек
server.on(“/”, HTTP_GET, {
server.send(200, “text/html”, “”);
Да, именно потому так и было. Сейчас вы этот обработчик изменили или вообще удалили - так чего вы хотите?
Да, get я убрал, так как проекте он не особо нужен, просто немного запутался уже.
Я вот думаю, отсутствие обработки GET запроса, никак не влияет на POST запросы ?