基本認証を使用したHTTPリクエストの送信

Elixir:
基本認証を使用したHTTPリクエストの送信

How to: (やり方)

# HTTPoisonを使った基本認証付きHTTPリクエストの例
defmodule SimpleHTTPClient do
  def send_request do
    # ベーシック認証の情報をエンコード
    auth = :base64.encode("user:password")
    
    # HTTPoisonを用いてGETリクエスト
    HTTPoison.get("https://example.com", [{"Authorization", "Basic " <> auth}])
  end
end

# サンプルの出力表示
case SimpleHTTPClient.send_request() do
  {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
    IO.puts("Success: #{body}")
  {:ok, %HTTPoison.Response{status_code: 401}} ->
    IO.puts("Unauthorized: Check your credentials.")
  {:error, %HTTPoison.Error{reason: reason}} ->
    IO.puts("Error: #{reason}")
end

このコードは基本認証で保護されたリソースへのHTTP GETリクエストを送信する方法を示しています。

Deep Dive (深掘り)

基本認証は、HTTPプロトコルで定義された最も古い認証形式の一つです。ユーザー名とパスワードをBase64でエンコードし、Authorizationヘッダに含めます。セキュリティが厳格な状況では、代わりにOAuthやTokenベースの認証が用いられることがあります。ElixirでHTTPリクエストを送るライブラリとしては、HTTPoisonの他にもTeslaやHackneyなどがあります。基本認証はHTTPS経由でのみ使用するべきで、HTTP上ではセキュリティが確保できません。Elixirでは、:base64モジュールを使うと容易にエンコード処理が可能です。

See Also (関連情報)