Как отправить запрос GET / POST с помощью Forth

Я хочу написать программу Forth для своего Raspberry Pi. Эта программа должна считывать некоторые данные датчиков из существующего файла и отправлять их на веб-сайт, где эти данные хранятся.

Поискав в Интернете, можно было найти множество документации о том, насколько легко и быстро Форт и как вычислять числа Фибоначчи. Но как я могу запросить URL-адрес? Как я могу отправить данные на сайт и обработать результат?

Если нет поддержки сокетов: можно ли запустить внешнюю программу, такую ​​как curl / wget, для выполнения запроса?

Хороший вопрос (на который я не знаю ответа). Для Gforth (который я фактически установил на Raspberry Pi) на их страница, в "библиотеки" он перечисляет "httpd.fs, веб-сервер (недокументированный)" - поэтому я предполагаю, что есть доступ к сокетам.

Peter Mortensen 02.05.2018 14:36
Моя инструкция по установке Gforth (в конце ответа).
Peter Mortensen 02.05.2018 14:51

Я только что нашел пример на rosettacode. И еще вопрос по этому поводу: stackoverflow.com/questions/49602466/forth-networking-librar‌ y

t3o 02.05.2018 15:58

Предоставляет ли Raspberry Pi какую-либо документацию относительно их реализации Forth? Все дело в том, какие слова Forth они могут предоставить в библиотеке для своего Forth. Доступные библиотеки GForth, вероятно, не помогут вам, если вы не захотите самостоятельно портировать реализацию из этого домена.

lurker 02.05.2018 21:56

Важно упомянуть, какую реализацию Forth вы используете на Raspberry Pi? Поскольку сокеты не являются частью стандарта, сетевые библиотеки и API зависят от реализации.

ruvim 03.05.2018 16:16

Вот пример из Rosettacode: rosettacode.org/wiki/HTTP#Forth Он работает с "include unix / socket.fs"

Manuel Rodriguez 07.06.2018 09:50
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
6
574
1

Ответы 1

Из вопроса не очевидно, какая реализация Forth используется.

Например, Gforth (доступен на Raspberry Pi) имеет некоторую поддержку сокетов, а также позволяет запускать внешнюю программу с использованием слова system. Смотрите мой ответ на аналогичный вопрос: Как мне прочитать необработанный код с веб-сайта в Gforth?

Пример создания дочернего процесса завиток в Gforth:

S" curl https://example.com/" system

В любом случае, кажется, что наиболее перспективным подходом к данной проблеме является разработка привязки к libcurl (если она еще не существует для используемой реализации Forth).

OP работает Forth на Raspberry Pi. Доступна ли ему та же библиотека сокетов, что и Gforth?

lurker 03.05.2018 14:46

@lurker, спасибо - мне очень не хватало того, что в вопросе не упоминается реализация Forth. Теперь я соответствующим образом обновил ответ. В случае использования libcurl нет необходимости в библиотеке сокетов.

ruvim 03.05.2018 16:31

Другие вопросы по теме