2
respostas

WEB SERVER ESP32 - Formulário HTM Post

#esp32 #arduino #webserver #post #get

Bom dia, Tenho dois formulários em html com POST mas ao clicar no botão do formulário o WEB Server no ESP32 não recebe as informações. Na pagina do formulário dá erro 500. Se utilizo o Postman pra testar tb dá erro 500. Poderiam me ajudar

server.on("/form1.html", HTTP_POST, [](AsyncWebServerRequest * request) { request->send(200, "text/plain", "Ola Form1!"); });

server.on("/form2.html", HTTP_POST, [](AsyncWebServerRequest * request) { request->send(200, "text/plain", "Ola Form2!"); });

server.on("/", HTTP_POST, [](AsyncWebServerRequest * request) { request->send(200, "text/plain", "Ola mundo!"); });

2 respostas

Oi!

A estrutura básica dos seus endpoints (/form1.html, /form2.html, /) está corretamente configurada com os métodos HTTP adequados. Isso é fundamental para que as requisições POST sejam recebidas corretamente pelo ESP32.

É possível que o erro 500 esteja ocorrendo porque as informações do formulário não estão sendo processadas corretamente no servidor. No código atual, você tá apenas enviando uma resposta de texto simples com request->send(...), mas talvez o servidor precise capturar os dados enviados pelo formulário antes de processar corretamente.

server.on("/form1.html", HTTP_POST, [](AsyncWebServerRequest *request){
  if (request->hasParam("param1", true)) {
    String param1 = request->getParam("param1", true)->value();
    // Aqui você pode processar o valor de 'param1'
    request->send(200, "text/plain", "Formulário 1 recebido: " + param1);
  } else {
    request->send(400, "text/plain", "Parâmetro não encontrado");
  }
});

Substituí resposta padrão por uma verificação se o parâmetro "param1" (ou outro nome que você tenha no seu formulário) foi enviado corretamente. Isso pode ajudar a evitar o erro 500 se a requisição estiver malformada ou se o servidor não conseguir encontrar os dados esperados.

Boa sorte com o projeto!

obrigado pela resposta, vou testar e retorno