我正在使用ESP8266HTTPClient库将数据发布到我的数据库中。尽管没有错误,但是我的服务器已成功响应。当我检查数据库时,它收到一个条目,但是,它是空的。
我已经用Postman测试了我的API,并且完全可以使用。
代码:
#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"
摘要:尽管数据库连接和输入成功,但PostData中包含的数据并未更新到数据库中。
答案 0 :(得分:0)
好的,所以我设法解决了这个问题。我使用MongoDB和Express框架创建了Web应用程序。问题是我使用 req.query.foo 来解析POST请求。
要使用的正确命令是 req.body.foo 。谢谢大家的答复。