2016-05-24 4 views
0

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

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

Используя инструмент почтальона с 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}} 

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

1 
plain: 
+0

Пожалуйста, добавьте тег языка, например 'C' или' C++ '. – Laurel

ответ

0

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

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

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