Как отправить параметры тела в эликсире, используя хакни - PullRequest
3 голосов
/ 14 января 2020

Я делаю запрос post в эликсире, используя hackney , который, кажется, работает нормально, но на службе приема тело пусто.

Есть ли вариант хакни, который мне не хватает? Я попытался отправить тело в виде списка и родную строку.

msg = Jason.encode!(%{message: "hello"})

{:ok, 200, _, body} = :hackney.post(
  "http://localhost:2002/api/some/endpoint",
  [
    {'Content-Type', 'application/json'}
  ],
  msg,
  [:with_body]
)

IO.inspect(Jason.decode!(body), label: "response")
# => {:ok, "ok"}

1 Ответ

4 голосов
/ 14 января 2020

Это отправило мне тело, но, похоже, ему нужно "application/json" в виде двоичного файла вместо чарлиста. Когда я создал чарт-лист, у меня появился числовой заголовок типа контента c.

Возможно, ваш сервер получит этот тип контента и обработает тело запроса таким образом, что оно не будет отправлено.

Это то, чем я закончил (я также изменил имя заголовка на строчные двоичные для согласованности, но это не кажется необходимым)

:hackney.post("http://localhost:2002/api/some/endpoint", [{"content-type", "application/json"}], msg, [:with_body])
...