首页 > 解决方案 > 带有 NULL 字符的 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 代码可以正常工作

标签: arduinohttpclientarduino-idearduino-esp8266esp32

解决方案


使用 http.getstream

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);

}


推荐阅读