Http ESP8266成功发布,数据库接收条目,但数据为空
我正在使用ESP8266HTTPClient库将数据发布到我的数据库。虽然没有错误,但我的服务器已成功响应。当我检查我的数据库时,它收到一个条目,但是它是空的 我已经用Postman测试了我的API,它完全可以工作 代码:Http ESP8266成功发布,数据库接收条目,但数据为空,http,post,arduino,esp8266,Http,Post,Arduino,Esp8266,我正在使用ESP8266HTTPClient库将数据发布到我的数据库。虽然没有错误,但我的服务器已成功响应。当我检查我的数据库时,它收到一个条目,但是它是空的 我已经用Postman测试了我的API,它完全可以工作 代码: 摘要:尽管成功地连接和输入了数据库,但PostData中包含的数据没有更新到数据库中。好的,所以我设法解决了这个问题。我使用MongoDB和Express框架创建web应用程序。问题是我使用了req.query.foo来解析POST请求 要使用的正确命令是req.body.f
摘要:尽管成功地连接和输入了数据库,但PostData中包含的数据没有更新到数据库中。好的,所以我设法解决了这个问题。我使用MongoDB和Express框架创建web应用程序。问题是我使用了req.query.foo来解析POST请求
要使用的正确命令是req.body.foo。感谢大家的回复。您如何在服务器端处理请求?我使用MongoDB作为数据库,并使用Express with node框架处理请求。从我所看到的情况来看,esp2866端没有任何问题。对我来说,问题出在服务器端,但我不是MongoDB方面的专家。但是我已经用Postman tho测试了我的服务器。它工作正常:/那么您的postData可能有问题,您确定所有内容都写得很好吗?
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
const char* ssid = "foo";
const char* password = "bar";
const char* host ="http://foo.com/";
const char* fullHost ="http://foo.com/api/update";
String PostData = "employeeID=1002&lotNumber=3&lotSize=XS&lotQuantity=46&jobSheetNumber=9&processId=200&timeTaken=30";
void setup() {
Serial.begin(115200);
delay(10);
// Standard code to connect to Wifi using <ESP8266WiFi.h> library.
}
void loop() {
Serial.print("\nConnecting to server: ");
Serial.println(host);
HTTPClient http;
http.begin(fullHost);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.POST(PostData);
String payload = http.getString();
Serial.println(httpCode); //Print HTTP return code
Serial.println(payload);
http.end();
delay(5000);
}
"Connecting to server: http://foo.com/"
"200"
"DATABASE UPDATE SUCCESSFUL"