webserver 相关问题

一种软件应用程序,使用超文本传输​​协议为来自客户端的请求提供服务。

当数据正确发送到 ESP32 时,ESP32 不会处理从 Web 应用程序以 JSON 形式发送的数据

你好吗? 我正在制作一个应用程序,其中 ESP32 用作网络服务器,目前我有一个网页来配置设备。 在这个页面中有一个 元素,一旦提交 你好吗?. 我正在制作一个应用程序,其中 ESP32 用作 Web 服务器,目前我有一个网页来配置设备。 在此页面中有一个<form>元素,一旦按下提交按钮,配置就会发送到ESP32,我知道数据已发送,因为我正在使用wireshark观看它,如下图所示 我知道ESP32正在接收POST请求,因为我在代码中有几个println语句,所以,处理请求的代码如下 server.on("/forma-dato", HTTP_POST, [](AsyncWebServerRequest *request) { if(!request->authenticate(usuarioHTTP, claveHTTP)) { return request->requestAuthentication(); }; request->send(200); Serial.println("Solicitud de carga de archivos enviada."); ultimaPaginaCargada = "/config.html"; }, manejaJson); 回调manejaJSON定义如下,摘自本页 void manejaJson(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) { Serial.println("Recibiendo configuración de la dirección IP ." + request->client()->remoteIP().toString() + " " + request->url()); if(!filename) { Serial.println("No hay archivo."); } if(!index) { request->_tempFile = SPIFFS.open("/" + filename, "w"); Serial.println("Carga Iniciada" + String(filename)); } if(len) { request->_tempFile.close(); Serial.println("Escribiendo archivo: " + String(filename) + ", tamaño: " + String(len)); } if(final) { request->_tempFile.close(); Serial.println("Carga completa: " + String(filename) + ", tamaño: " + String(index + filename)); request->redirect("/"); } } 正如你所看到的,有几个 println 句子可以知道程序在做什么,但是 manejaJson 回调中没有任何消息被打印,所以我认为 manejaJson 回调没有被执行,此外我没有任何返回值manejaJson 和 void 定义是因为与将其定义为 ArUploadHandlerFunction 相同,如在 AsyncWebServer 库的 .on 中声明的 WebServer.cpp 定义一样。 下面是从网页发送数据的代码 if(document.getElementById("forma") != null) { // Si encuentra la forma con la id igual a "forma", var elementoForma = document.getElementById("forma"); // extrae los valores completos. elementoForma.addEventListener("submit", function(e) { e.preventDefault(); var datosForma = {}; var formaDatos = new FormData(elementoForma); for(var [k,v] of formaDatos) { datosForma[k] = v; } console.log(datosForma); var datosJson = JSON.stringify(datosForma) console.log(datosJson); var config = new Blob([datosJson], {type: 'application/json'}); fetch("forma-dato", { method: "POST", body: config }); /*fs.writeFile('config.json', datosJson, 'utf-8', (err) => { if(err) { throw err; } console.log("Archivo guardado correctamente"); });*/ console.log(config); /*var envioForma = new XMLHttpRequest(); envioForma.open("POST", "forma-dato", true); envioForma.send(config);*/ }); } 正确知道数据是通过使用 fetch 方法发送的,但注释是另外两段发送数据的代码,一段使用 writefile,另一段使用 XMLHttpRequest,现在的 writefile 不太喜欢,因为在完全离线的应用程序中使用node.js。 那么,我能做些什么来解决这个问题并能够处理传入的数据。 预先感谢您的帮助。 注意:这个问题是我之前发表的this帖子的精确副本,但电子堆栈交换中的人们建议我在这里发表帖子,因为与软件比固件更相关。 为了让他们都知道,我能够使用在互联网上找到的代码解决问题,问题似乎是用于管理传入请求的 AsyncWebServer API 的默认方法不管理正文中包含 JSON 数据的请求默认情况下。 为了管理数据,必须使用 asyncjson.h 和 arduinojson.h,代码如下 AsyncCallbackJsonWebHandler* manejadorJson = new AsyncCallbackJsonWebHandler("/forma-dato", [](AsyncWebServerRequest *request, JsonVariant &docJson) { auto&& jsonObj = docJson.as<JsonObject>(); Serial.print("La fecha actual es :"); Serial.println((const char *) jsonObj["fecha"]); Serial.print("El horario del domingo en la tarde es: "); Serial.println((const char *) jsonObj["domingo-tarde-fin"]); request->send(200); Serial.println("Configuración recibida."); }); server.addHandler(manejadorJson); 当然所有的打印语句都是我写的,以便能够知道数据是否被处理过。 注意:在 AsyncWebServer API 的自述文件中是一个几乎类似于下面的示例,而不是使用该行 auto&& jsonObj = docJson.as<JsonObject>() 已使用 JsonObject& jsonObj = docJson.as<JsonObject>() 用上一行(只有一个 &)编写的示例对我来说不起作用,我查看了那里,显然这句话的问题是无法引用尚未初始化的变量。 JsonObject& jsonObj = docJson.as<JsonObject>() 错误:无法将“ArduinoJson::V704PB2::JsonObject&”类型的非常量左值引用绑定到“ArduinoJson::V704PB2::detail::enable_if::type”类型的右值(又名“ArduinoJson::V704PB2:”) :JsonObject'}

回答 2 投票 0

为什么当我尝试用手机访问 django 服务器时会收到服务器端 HTTP 400 错误?

我已经设置了一个简单的本地运行的 django 服务器,它提供了在服务器(当前是我的 MacBook Pro)上触发一些 bash 命令的按钮。这些命令的输出然后显示在...

回答 1 投票 0

点击 Angular 应用程序的 url 将显示 index.html 文件的 html 内容

每当我点击 Angular 应用程序的 URL 时,我都会看到 index.html 的 html 内容,而不是渲染的页面。可能是什么原因? 每当我点击 Angular 应用程序的 URL 时,我都会看到 index.html 的 html 内容,而不是渲染的页面。可能是什么原因? <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10"> <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge"> --> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>iTime</title> <base href="/ItimePreProd/ngiTime/"> <!-- <link rel="icon" type="image/x-icon" href="favicon.ico"> --> </head> <body> <app-root></app-root> <script src="runtime.js" defer></script><script src="polyfills-es5.js" nomodule defer></script><script src="polyfills.js" defer></script><script src="styles.js" defer></script><script src="scripts.js" defer></script><script src="vendor.js" defer></script><script src="main.js" defer></script></body> </html> 嗨,在谷歌上搜索了很多之后,我得到了解决方案,现在我的网址工作正常。 在 web-config 中添加重写规则后问题解决。

回答 1 投票 0

无法在 Spring Boot Test 1.5 中设置运行时本地服务器端口

我的应用程序使用 Spring Boot 1.5。在集成测试中,我想获取 Web 服务器的运行时端口号(注意:TestRestTemplate 在我的情况下没有用。)。有几个

回答 4 投票 0

如何让用户可以设置自己的域以编程方式重定向到我的服务器?

我正在构建一个网络构建器。目前,用户可以创建一个静态页面并使用我们的子域来访问该页面,例如mysite.site.domain.com。 我有一个计划允许用户使用自己的域名...

回答 1 投票 0

安装了PHP Apache模块的Web服务器是否符合Web应用服务器的定义?

我的问题可能听起来很奇怪,因为我对Web、服务器和WAS(Web应用服务器)了解不多。然而出于安全考虑,是否是WAS已经变得很重要并且需要

回答 1 投票 0

安装了 PHP Apache 模块的 Web 服务器是否符合 WAS 的定义?

我的问题可能听起来很奇怪,因为我对网络、服务器和 WAS 不太了解。但出于安全考虑,是否是WAS就变得很重要,需要确认。 从我

回答 1 投票 0

渐进式 Web 应用程序可以与本地网络上的设备配合使用吗?

我的本地网络上有多个设备,每个设备都运行一个网络服务器。该 Web 服务器仅显示用于与设备交互的 UI。可以有任意数量的可用并且可以使用它们

回答 2 投票 0

是否可以在同一 GCP 项目中的虚拟机实例之间交换公共 IP 地址?

我有一个 Google Cloud Platform 项目,其中的服务器运行一些 Web 平台和 API,为了将该服务器迁移到更现代的系统,我在同一个 GCP 项目中设置了一个新的 VM 实例,并且...

回答 1 投票 0

将 nextjs 应用程序作为子应用程序托管到 IIS

我想在 IIS 网站下托管 nextjs 应用程序作为子应用程序,按照下面的视频我可以将 nextjs 应用程序作为 IIS 中的网站运行 https://www.youtube.com/watch?v=HLsx0iraA-Y ...

回答 2 投票 0

带有 HTML 请求和 ESPAsyncWebServer 库的 ESP32

我想使用 ESPAsyncWebServer 库在 ESP32 上运行一个简单的 Web 服务器。在网页上,您应该能够选择要上传到 SD 卡的文件。您还应该能够从

回答 1 投票 0

如何测试 Apache 语法错误?

有什么方法可以用来测试 Apache Web 服务器的语法错误吗? 我尝试使用以下命令重新启动 Apache Web 服务器 systemctl restart apache2 但我收到错误并且服务器没有重新启动...

回答 1 投票 0

ESP Web 服务器处理路径参数

我在处理充当 Web 服务器的 ESP 上的请求时遇到问题。 基本上这段代码: #include //使用这个库 ... webServer.on("/api/:userId/lights...

回答 1 投票 0

Web 服务器和 Web 服务器网关接口 (WSGI) 有什么区别?

我对 WSGI 和 Web 服务器感到困惑。我想要解释它们之间的差异,或者它们是否是同一件事。提前谢谢你。

回答 1 投票 0

启动Tomcat:文件名、目录名或卷标语法不正确。按 Enter 或 Esc 退出

使用 我已经将 Tomcat 8(忽略图片上的 10.1.7,一旦它与 Java 8 不兼容)作为 Windows 服务安装到我的计算机中,当我启动时,会创建一个新控制台,并显示消息:

回答 2 投票 0

如何在 Node.js 中创建 HTTPS 服务器?

给定 SSL 密钥和证书,如何创建 HTTPS 服务?

回答 9 投票 0

Next.js - 部署静态输出时没有 .html 扩展名的 404 错误

我的网站使用 Next.js 并使用 FileZilla 进行静态输出部署。 我可以在没有 .html 扩展名的情况下到达网站的根目录,如下所示: https://www.mywebsite.com 当我尝试...

回答 1 投票 0

在生产中使用 PHP 内置服务器

我最近对 PHP 5.4 的内置网络服务器感到好奇。从表面上看,虽然相当准系统,但只要有足够的工作,就可以分发如下的 PHP 应用程序

回答 4 投票 0

Tengine Web 服务器默认安装支持哪些脚本语言?

我已从以下位置安装了 Tengine 网络服务器: http://tengine.taobao.org/ 我已经创建了一个 php 页面,但是 PHP 不执行,并且 PHP 显示在页面源代码中......

回答 1 投票 0

使用网络服务器在 ESP32 上重置看门狗定时器

我正在使用 ESP232 开发套件,我正在尝试启动一个可以输入 WiFi 数据的接入点,然后用于设置 WiFi 网络服务器来控制数据。但每当我输入错误的 wifi 数据时,...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.