Ви не увійшли.
Avazart, за код спасибо, но он не подходит. Более того, длина HTTP запроса зависит от браузера и принимающего сервера и там точно не 127 символов. Через хром можно и 2000+ передать, а вот сколько может обработать сервер arduino за раз я не знаю. Но мне вполне хватит и 500 символов для всех целей.
Та конкретно в Вашем случае как за программировать столько и будет символов, все остальное можно отсекать. 500 символов явно много, лучше используйте POST
Строка в С/С++ это и есть массив символов, только всегда завершающийся терминальным символом равным нулю. А класс String это слишком долгий разговор для форума.
В С++ есть std::string который обычно используется.
Не форум, а сборище флудеров. ... я не понимаю как работают строки, почему вдруг они являются массивами и как из строки сделать цельное слово. Спросить не у кого. На форумах одни юмористы и умники.
Скачал Visual Studio - изучаю строки в С++, а там видно будет.
Про флудеров и юмористов это точно. Вы хоть один учебник прочитали? Например этот: https://proklondike.net/books/cpp/cplus_dlja_chainikov.html Строка в С/С++ это и есть массив символов, только всегда завершающийся терминальным символом равным нулю. А класс String это слишком долгий разговор для форума.
Dessan пише:я не знаю как подключить модули String и stdio в ардуино, в стандартных библиотеках его нет.
В студии нет stdio.h ??? А если найду? Пиши #include <stdio.h> и не выпендривайся.
Ок, оно должно подсвечиваться как-то?Почему все модули красным цветом а #include <stdio.h> чёрным?Или это ни на что не влияет?
я не знаю как подключить модули String и stdio в ардуино, в стандартных библиотеках его нет.
В студии нет stdio.h ??? А если найду? Пиши #include <stdio.h> и не выпендривайся.
Не форум, а сборище флудеров. Если не знаете как решить задачу, так и не пишите ваши крайне умные мысли ни о чём. Хорошо, что у меня есть рабочее решение через функцию и даже без цикла while (что особенно приятно).
Avazart, за код спасибо, но он не подходит. Более того, длина HTTP запроса зависит от браузера и принимающего сервера и там точно не 127 символов. Через хром можно и 2000+ передать, а вот сколько может обработать сервер arduino за раз я не знаю. Но мне вполне хватит и 500 символов для всех целей.
Моя главная проблема в том, что я не знаю как подключить модули String и stdio в ардуино, в стандартных библиотеках его нет. На западных форумах нашёл, что их качают и устанавливают. Зачем они мне нужны? Хочу понимать как они работают. Вроде что-то скачал, но они не подсвечены совсем в коде красным цветом, как остальные модули и я не знаю так должно быть или нет. К тому же я не понимаю как работают строки, почему вдруг они являются массивами и как из строки сделать цельное слово. Спросить не у кого. На форумах одни юмористы и умники.
Скачал Visual Studio - изучаю строки в С++, а там видно будет.
Правильно разбивать задачи на подзадачи, а не пытаться все сделать сразу при чем мудрённым путем когда в этом нет никакого смысла.
логично анализировать именно по строкам
В заголовке http нет ничего, что могло бы, стоя в конце строки, отменить (или как-то повлиять на) то, что стояло в начале. Потому логично анализировать посимвольно, обычным лексическим автоматом. Построчно - это для тех, кто правильно делать не умеет.
ПоТамушта HTTP протокол, есть заголовки(headers) и тело(body). Заголовки идут строками(lines, т.е по разделителю CRLF). Соответственно логично анализировать именно по строкам, по крайней мере пока идут заголовки, тело потом можно читать как надо/угодно, но вообще в данном случае как правило можно тупо отбрасывать, игнорировать так как все интересное у нас содержится в самом URL в параметрах.
все равно нужно читать до перевода строки.
Зачем?
А читать по байтику не зависнет? Не несите чушь.
Ведь все равно нужен буфер куда складывать и все равно нужно читать до перевода строки.
Чушь, сейчас, самая востребованная ноша. Её несут все и везде! Складывать пора вёсла, и браться за буфера! Их парсить проще, чем поток токенов.
А читать по байтику не зависнет? Не несите чушь.
Ведь все равно нужен буфер куда складывать и все равно нужно читать до перевода строки.
Как мне объяснил народ, плохая идея забивать сначала всё что приходит в буфер а потом парсить, потому что буфер слишком маленький и если будет много данных, то всё зависнет. Нужно парсить на лету
Как пить дать зависнет. Просящий дожен писать так, чтобы можно было обслужить всё последовательно, без откладывания до поступления дополняющих инструкций. Но кто у нас так просить умеет? Всем давай всё с полуслова и сразу! А еще исполнитель может не успевать исполнить все желания. Это приводит к необходимости контроля потоков запросов, это типа как официант приностит блюда только после употребления предшествующих, едоком. Тут всё как в ресторане, только на другом языке.
Нужно парсить на лету
Таки да.
Так размер буфер нужно подбирать.
И именно поэтому стоит использовать Mega вместо UNO.
Если не ошибаюсь в строке HTTP запроса обычно не более 127 символов (Лучше посмотреть RFС) что должно вполне хватать под буфер для построчного чтения.
Я делаю примерно так:
//------------------------------------------------------------------------------
Как мне объяснил народ, плохая идея забивать сначала всё что приходит в буфер а потом парсить, потому что буфер слишком маленький и если будет много данных, то всё зависнет. Нужно парсить на лету