Arduino HTTPClient передача строки в переменную

По какой-то причине я не могу передать простую строку из одной переменной в другую. Ниже мой код:

  HTTPClient http; // Объявляем объект класса HTTPClient
  http.begin(address); // Укажите пункт назначения запроса
  int httpCode = http.GET(); // Отправляем запрос

  Serial.println("String: " + http.getString());

  String prp = http.getString();
  Serial.println("temp string: " + prp);

Он выводит:

Строка: < ! DOCTYPE HTML> 26

временная строка:

Почему моя строка не передается правильно во временную строковую переменную?

Том

, 👍0


1 ответ


Лучший ответ:

3

Метод getString() вызывает writeToStream, который документирован как запись всего тела сообщения / полезной нагрузки в Stream. Он записывает все данные http-ответа в выходной файл и не сохраняет их внутри. Следующий вызов не будет ничего читать, потому что первый вызов getString() вывел все.

,

Есть ли способ адаптировать мой код так, чтобы он все равно работал?, @Tom Schoehuijs

Разве это не очевидно? Считать в переменную, а затем вывести значение переменной. Удалить лишний println., @Juraj

Разве я не это делаю? Первый println работает нормально, проблема во втором!, @Tom Schoehuijs

вы отбрасываете строку, использованную в первом println. но ответ был только в этой строке. Вызов getString помещает полученные байты в эту строку., @Juraj