Elixir:
Wysyłanie żądania HTTP
Jak to zrobić:
Elixir używa różnych pakietów do wysyłania żądań HTTP, ale popularnym wyborem jest HTTPoison
. Oto jak możesz wysłać proste żądanie GET:
# Dodaj HTTPoison do swojego projektu dodając do `mix.exs`:
defp deps do
[
{:httpoison, "~> 1.8"}
]
end
# Potem uruchom `mix deps.get` aby pobrać zależności.
# Przykład żądania GET:
defmodule ExampleClient do
def get_example_page do
HTTPoison.get("http://example.com")
end
end
# Wywołanie i przykładowa odpowiedź:
{status_code, response_body} = ExampleClient.get_example_page()
IO.inspect({status_code, String.trim(response_body)})
Powinieneś zobaczyć odpowiedź serwera jako kod statusu wraz z treścią, np. {200, "<html>...</html>"}
.
Dogłębna analiza
HTTPoison bazuje na bibliotece hackney
i jest powszechnie stosowany w społeczności Elixir ze względu na swoją prostotę i elastyczność. Istnieje od czasów Elixir 1.0, dając stabilne API dla wielu projektów. Alternatywy to Tesla
, który oferuje middleware i większą konfigurowalność, oraz finch
, skupiający się na wydajności przy użyciu HTTP/2.
Wysyłająć żądania HTTP, ważne jest też zrozumienie metody HTTP, której używasz. GET jest przeznaczony do pobierania danych, POST do ich wysyłania, PUT do aktualizacji, a DELETE do ich usuwania. Odpowiedź serwera zawiera standardowy kod statusu HTTP oraz, w większości przypadków, treść wiadomości, która może być w różnych formatach, takich jak HTML, JSON czy XML.
Zobacz także
- HTTPoison documentation
- Elixir Forum - for community discussions and questions related to Elixir programming and HTTP requests.