我有一个使用ESP8266 12E的设置,它在特定端口200打开一个Web服务器。我已经使用端口转发将传入的数据路由到此服务器。我使用了duckdns来注册IP和调用duckdns域来触发ESP。 这很好用,我可以使用以下
触发http://mydomain.duckdns.org:200/parseIFTTT
使用postman工具,将contentType作为plain / text,将方法作为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");
}
但是当尝试与IFTTT集成任何Facebook或gmail事件时,我无法解析IFTTT的数据。
请求转到ESP8266,但请求数据我无法解析。
以下是请求:
URL : http://mydomain.duckdns.org:200/parseIFTTT
Method : POST
Content Type: text/plain
Body : {{Message}}
在我刚刚添加{{Message}}的身体中。在串行监视器中,我将op视为空白
1
plain:
答案 0 :(得分:0)
经过大量调试后我发现了这个问题。
esp8266 \ hardware \ esp8266 \ 2.2.0 \ libraries \ ESP8266WebServer \ src \ Parsing.cpp 在Http服务器的核心库中使用'Content-Length',IFTTT发送名称为“content-length”的请求头,因此未检索内容长度,并且未检索解析的数据。
不确定IFTTT是否存在问题,并将其作为较低的套餐价格发送。