Как создать объект JSON в Erlang
В эрланге нет таких вещей, как объекты, поэтому простой ответ: вы не можете. Тем не менее, вещи, которые вы отправляете через wire , являются просто строками, и вы, безусловно, можете создавать строки, используя erlang.
Чтобы упростить задачу, вы можете использовать модуль erlang, например jsx , для создания строк в формате json, которые вы хотите отправить в своем запросе. Однако, чтобы использовать модули erlang, вам нужно немного узнать о rebar3
, который является установщиком пакетов erlang (см. Какой самый простой способ для начинающих установить модуль? ).
Помните, что http-запрос - это просто строка, отформатированная определенным образом. HTTP-запрос начинается со строки вроде:
POST /some/path HTTP/1.1
Тогда есть несколько строк текста, которые называются headers и выглядят так:
User-Agent: Mozilla-yah-yah-bah
Content-Type: application/json
Content-Length: 103
Затем следует пара новых строк, за которыми следует дополнительный текст, который называется post body, , который может быть в нескольких различных форматах (формат должен быть объявлен в заголовке Content-Type
):
Format Content-Type
------ -----------
"x=1&y=2" application/x-www-form-urlencoded
"{x:1, y:2}" application/json
"more complex string" multipart/form-data
Чтобы упростить сбор http-запроса и его отправку на сервер, в erlang есть встроенный http-клиент , называемый inets
, о котором вы можете прочитать в документации здесь . Для примера, который использует inets
, см. здесь . Поскольку inets
немного громоздко в использовании, в качестве альтернативы вы можете использовать сторонний http-клиент, такой как hackney . Тем не менее, вам снова нужно будет установить hackney
с rebar3
.
После того, как вы отправите запрос, сервер должен расшифровать запрос и предпринять необходимые действия.