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

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

How to (実装方法):

HaskellでHTTPリクエストにベーシック認証を加える例です:

import Network.HTTP.Simple
import Data.ByteString.Char8 (pack)

main :: IO ()
main = do
  let auth = "Basic " ++ (unpack . Base64.encode . pack) "username:password"
  request' <- parseRequest "GET http://example.com"
  let request = setRequestHeader "Authorization" [pack auth] request'
  response <- httpLBS request
  putStrLn $ "Status code: " ++ show (getResponseStatusCode response)

サンプル出力:

Status code: 200

Deep Dive (掘り下げ):

歴史的背景:

ベーシック認証は古いが信頼できる手法です。最初のHTTP/1.0提案で使用されました。ただし、平文でのユーザー名とパスワードの送信は安全ではないため、HTTPSの使用が推奨されます。

代替手段:

オプションには、OAuthやTokenベースの認証があります。これらはより安全で、現代のAPIにおいて好まれます。

実装詳細:

Network.HTTP.Simpleモジュールは、リクエストヘッダを設定しやすくします。AuthorizationヘッダにBasic認証トークンを挿入することで認証情報が送信されます。パスワードとユーザー名はBase64でエンコードする必要があります。

See Also (関連情報):