Отправка HTTP-запроса

Elixir:
Отправка HTTP-запроса

Как это делать:

Используйте библиотеку HTTPoison в Elixir. Она аккуратная, простая и делает свою работу.

  1. Добавьте HTTPoison в mix.exs вашего проекта:
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end
  1. Запустите mix deps.get в терминале, чтобы загрузить зависимость.

  2. Теперь вы готовы отправить GET-запрос:

case HTTPoison.get("https://jsonplaceholder.typicode.com/posts/1") do
  {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
    IO.inspect(body) # вы получили свои данные!
  {:error, %HTTPoison.Error{reason: reason}} ->
    IO.inspect(reason) # обработка ошибки
end

Пример вывода: строка JSON с данными поста из заполнителя API.

Подробнее

Ранее вы бы использовали :httpc, поставляемый с Erlang/OTP или HTTPotion от Elixir. Теперь более популярен HTTPoison с более чистым синтаксисом и построенный на базе Hackney - надежного HTTP-клиента для Erlang.

Альтернативы HTTPoison включают Tesla – гибкий HTTP-клиент с поддержкой промежуточного программного обеспечения, и Mint – новый, низкоуровневый HTTP-клиент.

С точки зрения реализации, эти библиотеки обрабатывают управление соединениями, SSL и keep-alive - сложные вещи, которые важны для эффективной отправки HTTP-запросов. Они действуют как дружелюбные библиотекари, которые берут на себя основную работу, чтобы вам не пришлось пробираться через стопки самостоятельно.

Смотрите также