Elixir:
Einen HTTP-Request senden

So geht’s:

Installiere HTTPoison mit mix deps.get:

defp deps do
  [{:httpoison, "~> 1.8"}]
end

Einfache GET-Anfrage:

HTTPoison.start()

case HTTPoison.get("https://jsonplaceholder.typicode.com/posts/1") do
  {:ok, response} ->
    IO.inspect(response)
  {:error, reason} ->
    IO.inspect(reason)
end

Erwartete Ausgabe:

%HTTPoison.Response{
  body: "{ ... }",
  status_code: 200,
  ...
}

Eine POST-Anfrage mit JSON-Körper:

headers = [{"Content-Type", "application/json"}]
body = Jason.encode!(%{title: "Elixir", body: "Rocks!", userId: 1})

HTTPoison.post("https://jsonplaceholder.typicode.com/posts", body, headers)

Tiefgang

HTTP-Anfragen sind der Dreh- und Angelpunkt moderner Web-Anwendungen. Mit dem Aufkommen von REST-APIs und Microservices, spielt HTTP-Kommunikation eine größere Rolle. HTTPoison basiert auf hackney, einem erprobten HTTP-Client in Erlang.

Alternative Bibliotheken sind beispielsweise Tesla oder Finch. Im Kern nutzen sie alle das Erlang :httpc-Modul oder angepasste Adapter, um HTTP-Anfragen zu verarbeiten. Implementierungen können asynchron oder synchron sein und viele unterstützen Middlewaren und Plug-ins für erweiterte Funktionalitäten.

Siehe Auch