Arduino加入字符串和* char
Arduino joining string and *char
我是 arduino 的新手,我偶然发现了一个问题。我想通过我的 esp8266 将数据发送到我的 php 页面。但是我不知道如何用这个 GET 请求加入我的数据。
这是我的代码:
String card = "2-3d-fg-d6-12-68-32-3f-35-45-42-53-2a-3";
char *hello = "GET /insert.php?card="+card+"&error=1 HTTP/1.1\r\nHost: testsite.com\r\n\r\n";
wifi.send((const uint8_t*)hello, strlen(hello));
这就是我在 arduino 控制台中得到的:
error: cannot convert 'StringSumHelper' to 'char*' in initialization
cannot convert 'StringSumHelper' to 'char*' in initialization
您可以使用 std::string::c_str()
函数,其中 returns 一个指向 const char 缓冲区的指针:
String card = "2-3d-fg-d6-12-68-32-3f-35-45-42-53-2a-3";
char *prefix = "GET /insert.php?card=";
char *postfix ="&error=1 HTTP/1.1\r\nHost: testsite.com\r\n\r\n";
String url = prefix +card+ postfix;
const char *url_complete = url.c_str();
//...
另见相关 post:How concatenate a string and a const char?
使用 c_str() 函数,returns 一个指向 const char 的指针
String id = "14";
char *hello = "GET /api/weather/specific.php?id=";
char *hello2 = " HTTP/1.1\r\nHost: evive.000webhostapp.com\r\nConnection: close\r\n\r\n";
String url = hello + id + hello2;
const char *send_url = url.c_str();
wifi.send((const uint8_t*)send_url, strlen(send_url)); // For Arduino Mega and ESP8266
我是 arduino 的新手,我偶然发现了一个问题。我想通过我的 esp8266 将数据发送到我的 php 页面。但是我不知道如何用这个 GET 请求加入我的数据。
这是我的代码:
String card = "2-3d-fg-d6-12-68-32-3f-35-45-42-53-2a-3";
char *hello = "GET /insert.php?card="+card+"&error=1 HTTP/1.1\r\nHost: testsite.com\r\n\r\n";
wifi.send((const uint8_t*)hello, strlen(hello));
这就是我在 arduino 控制台中得到的:
error: cannot convert 'StringSumHelper' to 'char*' in initialization cannot convert 'StringSumHelper' to 'char*' in initialization
您可以使用 std::string::c_str()
函数,其中 returns 一个指向 const char 缓冲区的指针:
String card = "2-3d-fg-d6-12-68-32-3f-35-45-42-53-2a-3";
char *prefix = "GET /insert.php?card=";
char *postfix ="&error=1 HTTP/1.1\r\nHost: testsite.com\r\n\r\n";
String url = prefix +card+ postfix;
const char *url_complete = url.c_str();
//...
另见相关 post:How concatenate a string and a const char?
使用 c_str() 函数,returns 一个指向 const char 的指针
String id = "14";
char *hello = "GET /api/weather/specific.php?id=";
char *hello2 = " HTTP/1.1\r\nHost: evive.000webhostapp.com\r\nConnection: close\r\n\r\n";
String url = hello + id + hello2;
const char *send_url = url.c_str();
wifi.send((const uint8_t*)send_url, strlen(send_url)); // For Arduino Mega and ESP8266