Помогите разграничить и прочитать конкретное содержимое входящей строки HTTP
Я отправляю строки на Esp8266 через веб-браузер.
Приведенный ниже код возвращает следующее в последовательном мониторе, если я отправляю в браузере:
Отправить из браузера на esp8266 — http://192.168.1.220/s1s2s3s4s5d1
Получить в последовательном мониторе Arduino — GET /s1s2s3s4s5d2 HTTP/1.1
Как прочитать только содержимое s1s2s3s4s5d1? Это содержимое может быть разной длины, числа могут быть двузначными, но между ними останутся буквы алфавита.
Обратите внимание, что я все еще новичок.
// Читаем первую строку запроса
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
@S B, 👍1
Обсуждение2 ответа
▲ 1
У меня есть это
if (client.connected()) {
if (client.available() && client.find(' ')) { // ПОЛУЧИТЬ /fn HTTP/1.1
char fn[20];
int l = client.readBytesUntil(' ', fn, sizeof(fn));
fn[l] = 0;
while (client.read() != -1);
Serial.println(fn);
client.stop();
}
}
,
@Juraj
Спасибо, применю решение и вернусь., @S B
@sb, помогло?, @Juraj
▲ 0
вы можете попробовать что-то подобное
int first_space = request.indexOf(' '); // расположение первого пробела
int second_space = request.indexOf(' ', first_space); // следующий пробел после первого
String query_arg = request.substring(first_space,second_space);
,
@tavis
Смотрите также:
- Как исправить код утечки памяти в ESP8266/NodeMCU, вызванный концентрацией строк?
- Отправка данных из одного узла NodeMCU в другой узел NodeMCU с использованием последовательной связи
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Как изменить имя модуля ESP8266-12E по умолчанию
google
строки разбора arduino
, @jsotolaСпасибо, я безуспешно пытался реализовать некоторые методы. у меня просто нет опыта, тем более, что требуемый контент различается по длине. Я надеялся получить пример, если это возможно., @S B
у вас есть какой-либо контроль над форматом URL-адреса .... может быть, вам нужно использовать что-то вроде http://192.168.1.220?s=1&s2=4&s3=8&d=1&abcd=1234, @jsotola
сохранит ли этот метод буквы или разделит на цифры?, @S B