HTTPリクエストの送信

Elixir:
HTTPリクエストの送信

How to: (やり方)

# HTTPoisonを使ってGETリクエストを送る
HTTPoison.start()
{:ok, response} = HTTPoison.get("https://api.example.com/data")

# responseの内容を表示
IO.inspect(response)

# POSTリクエストを送る例
headers = [{"Content-Type", "application/json"}]
body = Jason.encode!(%{key: "value"})

{:ok, response} = HTTPoison.post("https://api.example.com/data", body, headers)

# responseの内容を表示
IO.inspect(response)

このコードはHTTPoisonライブラリを使っている。GETとPOSTの両リクエストの応答をターミナルに出力する。

Deep Dive (深掘り)

HTTPリクエスト送信の基本は、常に変わらないわけではない。Elixirが生まれる前、Erlangや他の言語では異なるツールやライブラリを使っていた。今でもHTTPリクエストは標準ライブラリの:httpcを使ったり、TeslaやHTTPotionのような他のライブラリを使う選択肢がある。HTTPoisonはErlangの:hackneyライブラリを基に作られており、使いやすさと拡張性を兼ね備えているのが特徴だ。

実装の詳細については、HTTPoisonを始める前に:hackney、それにHTTPoison.start()を呼ぶ必要がある。これは:hackneyをElixirのアプリケーションとして起動するための準備だ。また、リクエスト時にはheadersbodyを明示的に定義し、正確なHTTPリクエストを構築できる。

See Also (関連情報)