ESP32异步Web服务器POST方法不工作
我很难让POST方法与ESP32&异步Web服务器一起工作。准确地说,邮政路线是可识别的,但对尸体的处理失败 ESP32是WROOM-32。后文示例改编自 web服务器和ESP32似乎以我尝试过的其他方式工作。虽然我下面的示例没有显示它,但是GET方法工作得很好。当我试图处理POST请求的主体时,问题就出现了。我在代码中添加了一条注释“这里的代码不是执行的”,以显示什么不起作用。显示简单表单/testform.html,但提交后,POST处理程序的标题部分显示内容类型为application/x-www-form-urlencoded,但不会将任何内容返回到Chrome浏览器,并且不会执行用于显示POST正文的打印语句 ESP32代码如下所示,我正在使用Arduino IDE: 包括WiFi.h 包括ESPAsyncWebServer.h 包括SPIFFS.h 常量字符*ssid=xxxxxx;//实际SSID和Pw已删除 常量字符*密码=xxxxxx; 异步web服务器server80; 无效设置{ 从15200年开始; WiFi.beginssid,密码; 当WiFi.status!=WL\U已连接时{ 延迟1000; Serial.println连接到WiFi。。; } //初始化SPIFFS 如果!SPIFFS.begintrue{ Serial.PrintLn安装SPIFF时发生错误; 回来 } Serial.printlnWiFi.localIP; server.on/testform.html,HTTP_-GET,[]AsyncWebServerRequest*请求{ request->sendSPIFFS,/testform.html,字符串,false; }; 服务器.on /我的处理表格页面, HTTP:, []AsyncWebServerRequest*请求{ //以下打印语句有效+删除它们没有任何区别 //这将显示在监视器内容类型::application/x-www-form-urlencoded上 Serial.printContent类型:; Serial.printlrequest->contentType; },//路由处理功能 无效的 []AsyncWebServerRequest*请求,uint8\u t*数据,大小长度,大小索引,大小总计{ //***此处的代码未执行*** 对于尺寸i=0;iESP32异步Web服务器POST方法不工作,post,esp32,Post,Esp32,我很难让POST方法与ESP32&异步Web服务器一起工作。准确地说,邮政路线是可识别的,但对尸体的处理失败 ESP32是WROOM-32。后文示例改编自 web服务器和ESP32似乎以我尝试过的其他方式工作。虽然我下面的示例没有显示它,但是GET方法工作得很好。当我试图处理POST请求的主体时,问题就出现了。我在代码中添加了一条注释“这里的代码不是执行的”,以显示什么不起作用。显示简单表单/testform.html,但提交后,POST处理程序的标题部分显示内容类型为application/x
server.on(
"/post",
HTTP_POST,
[](AsyncWebServerRequest * request){
// The following print statements work + removing them makes no difference
// This is displayed on monitor "Content type::application/x-www-form-urlencoded"
Serial.print("Content type::");
Serial.println(request->contentType());
Serial.println("OFF hit.");
String message;
int params = request->params();
Serial.printf("%d params sent in\n", params);
for (int i = 0; i < params; i++)
{
AsyncWebParameter *p = request->getParam(i);
if (p->isFile())
{
Serial.printf("_FILE[%s]: %s, size: %u", p->name().c_str(), p->value().c_str(), p->size());
}
else if (p->isPost())
{
Serial.printf("%s: %s \n", p->name().c_str(), p->value().c_str());
}
else
{
Serial.printf("_GET[%s]: %s", p->name().c_str(), p->value().c_str());
}
}
});
我用Postman做了更多的研究和测试,当内容类型为application/x-www-form-urlencoded时,body方法似乎没有被调用,这是从我的简单html表单调用时的情况。在这种情况下,问题变成了如何访问此内容类型的正文数据?是否可以编辑您的帖子,使所有代码都在一个代码块中?是否可以在您的帖子中包含有关问题和解决方案的一些解释?简单的代码转储不是一个很好的答案。