Ethernet Shield
- Войдите на сайт для отправки комментариев
Ср, 05/09/2012 - 14:48
Здравствуйте все!
Такой вот вопрос, как с помощью этой платы отправлять POST данные на сайт и считывать данные с него? Спасибо.
Здравствуйте все!
Такой вот вопрос, как с помощью этой платы отправлять POST данные на сайт и считывать данные с него? Спасибо.
Все, в принципе, есть в примере. ПОСТ - придется формировать "ручками", данные считывать просто - получил текст - парсишь. Лучше, чтобы сайт для дуины спец-страницу отправлял с заранее известным форматом, тогда данные извлекать удобнее, не надо их искать, сразу читаешь с определенного места.
По большому счету ваш вопрос вообще не относится к Ардуине и шилду. Задача шилда - отправить текстовую строчку которую вы ему дали.
Если эта текстовая строка соответсвует формату GET запроса - получается GET запрос, если в ней лежит POST запрос - ну вы поняли.
Что-бы понять что же именно должно быть в этих строках должно быть обязатель/опционально требуется либо почитать спецификацию HTTP протокола, либо поставить fiddler2, подергать какой-нибудь сайт и посмотреть как выглядят запросы которые шлет браузер, и как выглядят ответы (в конечном итоге вам нужно "изобразить из себя браузер").
Лучше, чтобы сайт для дуины спец-страницу отправлял с заранее известным форматом, тогда данные извлекать удобнее, не надо их искать, сразу читаешь с определенного места.
Совершенно верно. Распарсить настояющую тяжелую страницу с дизайном - у ардуины может банально не хватить сил (памяти). Да и самому парсить html на C++ - повесится можно.
Я делал так: на сервере смотрел заголовок Accept. Если там ничего нет - отдавал данные в виде XML (удобно браузером смотреть), если "application/jsonrequest" - отдавал в виде json (значит из javascript-та данные запросили), если "application/arduino" - отдавал данные в виде "var1=value1,var2=value2,var3=value3". Что как-бы проще всего парсить на ардуине.
Ну а, со стороны ардуины, ествесвенно, к каждому запросу добвлял заголовок "accept: application/adruino"
У меня данные были простые - мне этого хватало. Если нужно будет передавать какие-то сложные структуры данных, то, наверное пошел-бы по пути запрашивать ардуиной не "application/arduino", а "application/jsonrequest". Ну и потом парсил-бы JSON на ардуине (вроде где-то видел готовые либы для этого).