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
временная строка:
Почему моя строка не передается правильно во временную строковую переменную?
Том
@Tom Schoehuijs, 👍0
1 ответ
Лучший ответ:
▲ 3
Метод getString() вызывает writeToStream, который документирован как запись всего тела сообщения / полезной нагрузки в Stream. Он записывает все данные http-ответа в выходной файл и не сохраняет их внутри. Следующий вызов не будет ничего читать, потому что первый вызов getString() вывел все.
,
@Juraj
Смотрите также:
- Как составить URL-адрес HTTP-запроса GET с параметрами ключ/значение
- Как заменить объекты String массивами символов, продолжая использовать строковые методы
- Преобразование строки в IP-адрес
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- ESP8266 Ошибка неверного запроса 400
- Как передать строковые данные с помощью библиотеки rc-switch?
- Какова цель F() и FPSTR() в ESP8266WebServer -> FSBrowser?
- Проанализировать большой ответ json с помощью ESP8266
Есть ли способ адаптировать мой код так, чтобы он все равно работал?, @Tom Schoehuijs
Разве это не очевидно? Считать в переменную, а затем вывести значение переменной. Удалить лишний println., @Juraj
Разве я не это делаю? Первый println работает нормально, проблема во втором!, @Tom Schoehuijs
вы отбрасываете строку, использованную в первом println. но ответ был только в этой строке. Вызов getString помещает полученные байты в эту строку., @Juraj