Elixir:
Отправка HTTP-запроса
Как это делать:
Используйте библиотеку HTTPoison
в Elixir. Она аккуратная, простая и делает свою работу.
- Добавьте HTTPoison в
mix.exs
вашего проекта:
defp deps do
[
{:httpoison, "~> 1.8"}
]
end
Запустите
mix deps.get
в терминале, чтобы загрузить зависимость.Теперь вы готовы отправить 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-запросов. Они действуют как дружелюбные библиотекари, которые берут на себя основную работу, чтобы вам не пришлось пробираться через стопки самостоятельно.
Смотрите также
- HTTPoison на GitHub – для всех подробностей и обновлений.
- HexDocs для HTTPoison – место для полной документации.
- Форум Elixir – для общения с сообществом.