0

ESP8266 12E を使用するセットアップがあり、特定のポート 200 で Web サーバーを開きます。ポート転送を使用して、着信データをこのサーバーにルーティングしました。そして、duckdns を使用して IP を登録し、duckdns を呼び出しましたESP をトリガーするドメイン。これは正常に機能し、次を使用してトリガーできます

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

郵便配達員ツールを使用して、contentType をプレーン/テキスト、メソッドを POST として使用すると、渡したコンテンツは ESP の parseIFTTT メソッドによって解析されます。

 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");
}

しかし、Facebook または gmail のイベントのために IFTTT と統合しようとすると、IFTTT からのデータを解析できません。

リクエストは ESP8266 に送信されますが、リクエスト データを解析できません。

リクエストは次のとおりです。

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

本文には {{Message}} のみを追加しました。シリアルモニターでは、opが空白になります

1
plain:
4

1 に答える 1

0

多くのデバッグの後、問題を発見しました。

HTTP サーバーのコア ライブラリの esp8266\hardware\esp8266\2.2.0\libraries\ESP8266WebServer\src\Parsing.cpp は「Content-Length」を使用しており、IFTTT は「content-length」という名前のリクエスト ヘッダーを送信していました。 ' したがって、コンテンツの長さは取得されず、解析されたデータは取得されませんでした。

これが小文字の値として送信されるIFTTTに問題があるかどうかはわかりません。

于 2016-05-29T04:53:36.447 に答える