Esp8266 перестал корректно отправлять запрос

Тема в разделе "ESP8266, ESP32", создана пользователем lex-sh, 7 мар 2021.

  1. lex-sh

    lex-sh Нуб

    Добрый день!
    Почти год есп-шка передавала данные (температуру) на сервер и вдруг отказалась это делать. Если я захожу по ссылке из браузера на сервер, все ок, если запрос из модуля - ошибка 400. На скрине два запроса - из браузера и из модуля, один успешный, второй 400. Видно, что в запрос не инклюдится HTTP/1.1. Но этот же код успешно работал.
    Что не так не пойму.
     

    Вложения:

    • error1.png
      error1.png
      Размер файла:
      10,1 КБ
      Просмотров:
      143
    • error2.png
      error2.png
      Размер файла:
      5,2 КБ
      Просмотров:
      139
    Последнее редактирование: 7 мар 2021
  2. Vovka

    Vovka Гик

    Если я правильно понял, то есп работает в роли клиента.
    Сервер делает тот-же запрос о температуре, что и "модуль"?
     
  3. lex-sh

    lex-sh Нуб

    Немного недопонял. Сервер не делает запросов, а только принимает. Это лог nginx
     
    Последнее редактирование: 7 мар 2021
  4. Vovka

    Vovka Гик

    Что такое "модуль" и при чем здесь есп?
     
  5. lex-sh

    lex-sh Нуб

    Модуль -это esp8266, клиент, из ардуино получает значения датчиков и отсылает их на веб-сервер get-запросом. Больше ничего не делает. И если раньше отрабатывал нормально, то теперь по логам веб-сервера вижу, что запросы поступают, но сервер их отклоняет с ошибкой 400.
     
  6. Vovka

    Vovka Гик

    Попробуйте код запроса клиента оформить так:
    Код (C++):
    String s;
    s = "GET /weatcher/";
    s += String(temp); // temp я так понимаю, что это переменная?
    s += все остальное....
    client.print(s);
     
     
    lex-sh нравится это.
  7. lex-sh

    lex-sh Нуб

    Спасибо за помощь. Итак, пишу, как Вы советуете запрос. В мониторе порта отправляю температуру (temp), пусть 100. В ответ для проверки того, что уходит, вывожу строку запроса.
    Далее гляжу лог. Ошибка 400.
    Далее захожу в браузер ввожу строку запроса с переменной 100 и смотрю опять лог. Сейчас все ок, 200, в БД пишется температура.
     

    Вложения:

    • error3.png
      error3.png
      Размер файла:
      6,2 КБ
      Просмотров:
      142
    • error4.png
      error4.png
      Размер файла:
      5,4 КБ
      Просмотров:
      146
    • error5.png
      error5.png
      Размер файла:
      2,6 КБ
      Просмотров:
      142
    • error6.png
      error6.png
      Размер файла:
      15,7 КБ
      Просмотров:
      153
    • error7.png
      error7.png
      Размер файла:
      9,1 КБ
      Просмотров:
      141
  8. Vovka

    Vovka Гик

    Быстрое решение - сделайте есп-шкой такой же запрос, как и делает браузер
     
  9. lex-sh

    lex-sh Нуб

    В принципе, то же самое

    Основное отличие - где-то обрезается HTTP/1.1
     

    Вложения:

    • error8.png
      error8.png
      Размер файла:
      41,4 КБ
      Просмотров:
      145
  10. Vovka

    Vovka Гик

    Сделайте есп-шкой точно такой же запрос, как и с браузера
     
    lex-sh нравится это.
  11. Vovka

    Vovka Гик

    походу тут два варианта: либо ошибка в коде отправки (например, есп не успела отправить запрос, как закрываете соединение), либо какая-то защита на сервере, например, проверка на наличие кук