HTTP_POST请求中ESP8266 JSON 参数
ESP8266 JSON Parameters in HTTP_POST Request
我正在做一个项目,其中ESP8266在启动时以softAP模式启动。主页显示可用 WiFi 网络的列表。用户选择其中一个并输入该网络的密码。这会向 Web 服务器发送一个HTTP_POST请求,其中包括所选 WiFi 网络的 SSID 和密码 JSON 列表。但是当我检查请求的参数数量时,我得到 0。服务器正确标识内容类型和内容长度,但无法识别任何参数。下面是/connect
句柄的代码。我也尝试使用request->args()
.那也行不通。
server.on("/connect", HTTP_POST, [](AsyncWebServerRequest *request)
{
String argList;
String password;
String key = "ssid";
Serial.println(request->contentType());
Serial.println(request->contentLength());
Serial.print("ArgNum: ");
Serial.println(request->params());
for (int i = 0; i < request->params(); i++)
{
AsyncWebParameter* p = request->getParam(i);
Serial.print(p->name());
Serial.print(": ");
Serial.println(p->value());
}
request->send(200, "text/plain", "SUCCESS");
});
我必须使用 json 解析器解析请求正文。
server.on("/connect", HTTP_POST, [](AsyncWebServerRequest *request){
request->send(200, "text/plain", "SUCCESS");
}, NULL, onConnectBody);
void onConnectBody(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total)
{
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(data);
if (!root.success())
{
Serial.println("parseObject() failed");
return;
}
String ssid = root["ssid"];
String password = root["password"];
bool secure = root["secure"];
Serial.print("ssid: ");
Serial.println(ssid);
Serial.print("password: ");
Serial.println(password);
Serial.println(secure);
setNetworkCredentials(ssid, password, secure);
}
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 在c++中使用nlohmann从类到json的转换
- C++json插入数组
- nlohmann-json将一个数组插入到另一个数组中
- 如何使用curlpp通过POST方法上传文件和json数据
- JSON转换为nlohmann JSON-lib中的结构数组
- NLOHMANN 的 JSON 库将数组转换为结构向量
- esp8266互联网交换机问题
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 如何在 nlohmann 的 json 库中获取数组长度?
- ESP8266单片机矢量迭代器的C++问题
- UE4 C++ 我无法将 JSON 嵌套值获取到 TArray
- 如何使用ESP8266向谷歌主页发送命令
- 如何在特定位置追加 json 文件
- 有没有办法让编译器在我放置字符串而不是 nlohmann::json 对象时抛出错误?
- 使用 jsoncpp 解析 json 数组字符串
- 将 FlatBuffer 对象序列化为 JSON,而不使用其架构文件
- 如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?
- ESP8266读取 JSON,但不读取 PHP 文件
- HTTP_POST请求中ESP8266 JSON 参数