Сервер на esp и отправка на него json файла из 1с

переменную не объявлял

теперь 1с выдает код 404
а если зайти на страничку то вот такое

А до этого что выдавало?

в самые первые разы была пустая страница, 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 не разбираешься, я тоже )))

Классно. Оба не разбираемся. Пошли шашлык замутим, чтоль? А то у нас жара и как бэ низзяяя (а хочется) :smiley:

у нас сегодня целый день скорые с мигалками шёркают, +38 в тени было, может даже больше

У нас +/- тоже самое. Это повод твой отказа в шашлыках???!!!

у меня только нарзан для него есть )))

Да пофик. Хоть в помидорах (самый вкусный шашлык что я пробовал).
Барана сам прирежу, если твой буддизм это запрещает (как буддисты вообще выжЫли?). Но баран с тебя )))

эпично :rofl:

У него указан

Опять такая же песня, 1с выдает код ошибки 404, а при переходе по ссылке
такая картина

Я же спросил - а раньше как было? Что вы хотите, переходя по ссылке, если ваш сервер на esp никак этот переход не отрабатывает и никакой страницы не выдает?

1 лайк

Раньше была белая страница. Но это скорее всего из-за этих строчек

server.on(“/”, HTTP_GET, {
server.send(200, “text/html”, “”);

Да, именно потому так и было. Сейчас вы этот обработчик изменили или вообще удалили - так чего вы хотите?

Да, get я убрал, так как проекте он не особо нужен, просто немного запутался уже.
Я вот думаю, отсутствие обработки GET запроса, никак не влияет на POST запросы ?