Inviare una richiesta http

Elixir:
Inviare una richiesta http

How to:

Usiamo HTTPoison, una libreria popolare di Elixir per fare richieste HTTP. Installala aggiungendo {:httpoison, "~> 1.8"} al tuo mix.exs e eseguendo mix deps.get.

defmodule HttpExample do
  def fetch_content(url) do
    case HTTPoison.get(url) do
      {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
        IO.puts("Content fetched successfully!")
        IO.puts(body)
      {:ok, %HTTPoison.Response{status_code: code}} ->
        IO.puts("Oops! Something went wrong. Status code: #{code}")
      {:error, %HTTPoison.Error{reason: reason}} ->
        IO.puts("Error fetching content: #{reason}")
    end
  end
end

# Uso:
HttpExample.fetch_content("https://jsonplaceholder.typicode.com/posts/1")

Output atteso (esempio):

Content fetched successfully!
{
  "userId": 1,
  "id": 1,
  ...
}

Deep Dive

HTTPoison si basa su hackney, un client HTTP scritto in Erlang. Un’alternativa a HTTPoison è Tesla, un altro client HTTP, che permette una maggiore modularità con middleware. Quando invii richieste HTTP, tieni a mente i limiti come il rate limit e il timeout.

See Also