我是Arduino和C ++的新手,并且正在从事学校的Arduino项目。我有Firebase Cloud Function,如果要从Arduino打电话给我。我开始与服务器建立连接并对其进行查询:
const String query = "QUERY";
if (client.connect(server, 80)) {
Serial.print("Connected to ");
Serial.println(client.remoteIP());
// Make an HTTP request:
client.println(query);
client.println("Host: SERVER-HOST-NAME");
client.println("Connection: close");
client.println();
}
现在,如果将查询字符串声明为一个,这将非常有用:
String query = String("GET /cloudFunctionName?dataThatShouldBeVariable=FixedData HTTP/1.1");
示例:
String query = String("GET /updateDatabase?temp=10 HTTP/1.1");
使用上述方法时,云功能将触发,并且数据库将被更新。但是我不能在生产中使用它,因为我有一些可变数据,所以我所做的是:
String query = String("GET /cloudFunctionName?dataThatShouldBeVariable=" + String(VariableData) + " HTTP/1.1");
示例:
String query = String("GET /updateDatabase?temp=" + String(10) + " HTTP/1.1");
现在,当我打印两个字符串的结果时,我得到的结果是相同的,但是当使用第二种方法时,云函数不会被触发,数据库也不会得到更新。
我相信问题出在查询变量而不是服务器或硬件,但我找不到答案。我已经为此工作了几个小时,我真的很生气,我不知道该怎么办。 请告诉我问题出在哪里以及如何解决。