Å sende en HTTP-forespørsel med grunnleggende autentisering

Haskell:
Å sende en HTTP-forespørsel med grunnleggende autentisering

Slik Gjør Du:

For å gjøre en HTTP-forespørsel med grunnleggende autentisering i Haskell, kan du bruke http-client og http-client-tls bibliotekene. Her er et eksempel:

{-# LANGUAGE OverloadedStrings #-}

import Network.HTTP.Client
import Network.HTTP.Client.TLS (tlsManagerSettings)
import Network.HTTP.Types.Header (hAuthorization)
import Data.ByteString.Base64 (encode)
import qualified Data.ByteString.Char8 as BS

main :: IO ()
main = do
  manager <- newManager tlsManagerSettings
  let creds = "brukernavn:passord"
      url = "https://eksempel.no/minside"
      headers = [(hAuthorization, "Basic " <> encode (BS.pack creds))]

  initialRequest <- parseRequest url
  let request = initialRequest { method = "GET", requestHeaders = headers }

  response <- httpLbs request manager
  putStrLn $ "Statuskode: " ++ show (responseStatus response)
  BS.putStrLn $ responseBody response

Dette sender en GET-forespørsel til en URL med grunnleggende autentisering. responseStatus og responseBody gir statuskoden og svaret.

Dypdykk

Grunnleggende autentisering i HTTP er en metode for en HTTP-brukeragent (som en webleser) til å gi brukernavn og passord ved forespørsler. Den har eksistert siden de tidligere dagene av HTTP og regnes for å være enkel, men ikke den sikreste metoden for autentisering.

Alternativer for grunnleggende autentisering inkluderer OAuth, API-nøkler og tokens. Disse metodene gir sterkere sikkerhet og er mer velegnet for moderne applikasjoner.

Implementeringsdetaljer for HTTP-forespørsler med grunnleggende autentisering i Haskell fokuserer på å riktig kode brukernavn og passord med Base64, og sørge for at HTTPS brukes for å beskytte legitimasjonsbevisene i transitt.

Se Også