ESP8266 POST成功,数据库收到条目但空数据

时间:2019-05-22 07:15:26

标签: http post arduino esp8266

我正在使用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中包含的数据并未更新到数据库中。

1 个答案:

答案 0 :(得分:0)

好的,所以我设法解决了这个问题。我使用MongoDB和Express框架创建了Web应用程序。问题是我使用 req.query.foo 来解析POST请求。

要使用的正确命令是 req.body.foo 。谢谢大家的答复。