字符串类怪异行为

时间:2019-01-15 16:34:13

标签: c++ string firebase http arduino

我是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");

现在,当我打印两个字符串的结果时,我得到的结果是相同的,但是当使用第二种方法时,云函数不会被触发,数据库也不会得到更新。

我相信问题出在查询变量而不是服务器或硬件,但我找不到答案。我已经为此工作了几个小时,我真的很生气,我不知道该怎么办。 请告诉我问题出在哪里以及如何解决。

0 个答案:

没有答案