Ошибка ESP8266 IFTTT

У меня есть установка, в которой используется ESP8266 12E, и она открывает веб-сервер на определенном порту 200. Я использовал переадресацию портов для маршрутизации входящих данных на этот сервер. И я использовал duckdns для регистрации IP и вызова duckdns. домен для запуска ESP. Это отлично работает, и я могу запустить, используя следующие

http://mydomain.duckdns.org:200/parseIFTTT

Используя инструмент postman, с contentType как обычный/текст и методом POST, любое содержимое, которое я передаю, анализируется методом parseIFTTT в ESP.

 void parseIFTTT() {

  String message;
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  Serial.println(message);
  server.send(200, "text/plain", "Success");
}

Но когда я попытался интегрироваться с IFTTT для любых событий Facebook или Gmail, я не смог проанализировать данные из IFTTT.

Запрос отправляется на ESP8266, но данные запроса я не могу разобрать.

Следующий запрос:

URL : http://mydomain.duckdns.org:200/parseIFTTT
Method : POST
Content Type: text/plain
Body : {{Message}}

В теле я только что добавил {{Message}}. В последовательном мониторе я получаю пустую операцию

1
plain:

person rahulmr    schedule 24.05.2016    source источник
comment
Добавьте тег языка, например C или C++.   -  person Laurel    schedule 24.05.2016


Ответы (1)


Я нашел проблему после большой отладки.

esp8266\hardware\esp8266\2.2.0\libraries\ESP8266WebServer\src\Parsing.cpp в основной библиотеке для Http-сервера использовал «Content-Length», а IFTTT отправлял заголовок запроса с именем как «content-length ' и, следовательно, длина содержимого не была получена, а проанализированные данные не были получены.

Не уверен, что это проблема с IFTTT, где они отправляют это как значение в нижнем регистре.

person rahulmr    schedule 29.05.2016