Пытаюсь получить и обработать бинарные данные с сервера. Но в ответе берутся лишние 10 байт.
Вот пример голого ответа, с заголовками и символами. Тело - те самые, нужные 10 нулевых байт.
Код получения и обработки ответа.
if(_httpResponseCode == 200) {
WiFiClient *stream = http.getStreamPtr();
int available = stream->available();
Serial.print("Available ");
Serial.println(available);
//Allocating memory for the response buffer
uint8_t* _result_bufer = new uint8_t[available];
//Reading all bytes from the stream and writing to the buffer
stream->readBytes(_result_bufer, available);
//Printing all received bytes to the console
for(int bytesRead = 0; bytesRead < available ; bytesRead++){
Serial.printf("%02X ", _result_bufer[bytesRead]);
}
_result = _result_bufer;
Serial.println();
Serial.print("Total bytes reads: ");
Serial.println(bytesRead);
}
available возвращает 20.
4 пары байт это - переноса строк CL LF(выделил синим) 2 байта вообще неясные.
Вот результат работы кода, зеленым - это те самые 10 нужных байт.
Откуда это все? в ответе нет столько переносов даже.