Arduino HttpClient getString出现空字符问题。ESP32
对我的http.Get()方法(十六进制)的响应应该如下所示 0x00,0x00,0x00,0x00,0x04,0x08,0xff 但是当你试图用 response=http.getString(); 我得到的空字符串可能是因为getString()通过看到0x00(NULL)终止它 那么,有没有任何方法可以替换getString()或在get方法响应中接收unit8_t字节呢 如果我在服务器上编辑对0x04,0x08,0xff的响应,ps代码的工作方式与使用http.getstream相同Arduino HttpClient getString出现空字符问题。ESP32,arduino,httpclient,arduino-ide,arduino-esp8266,esp32,Arduino,Httpclient,Arduino Ide,Arduino Esp8266,Esp32,对我的http.Get()方法(十六进制)的响应应该如下所示 0x00,0x00,0x00,0x00,0x04,0x08,0xff 但是当你试图用 response=http.getString(); 我得到的空字符串可能是因为getString()通过看到0x00(NULL)终止它 那么,有没有任何方法可以替换getString()或在get方法响应中接收unit8_t字节呢 如果我在服务器上编辑对0x04,0x08,0xff的响应,ps代码的工作方式与使用http.getstream相同 W
WiFiClient * stream = http.getStreamPtr();
while(http.connected() && (len > 0 || len == -1))
{
// get available data size
size_t size = stream->available();
if(size) {
// read up to 128 byte
int c = stream->readBytes(response, ((size > sizeof(response)) ?
sizeof(response) : size));
if(len > 0) {
len -= c;
}
}
delay(1);
}http协议设计为使用完全ascii可见的代码字符串进行通信。如果您不想使用“文本”进行通信,请不要使用http协议。@webmite图像是通过http协议发送的,它们是二进制的。@gre\u gor仅当正确封装在协议中时。问题特别指出,他们正在尝试使用getString()函数。因此,“String”是预期的数据类型。为了澄清一下,如果二进制值不是以null开头,我会得到它们。通常,什么标记字符串的结尾?为什么不希望名为“getString”的函数在这里结束?