Haskell:
Een HTTP-verzoek verzenden
Hoe:
Laten we naar het leuke gedeelte gaan. Je hebt de http-client
en http-client-tls
pakketten nodig. Stel je stack in en voeg ze toe aan je package.yaml
of .cabal
bestand. Voer vervolgens stack build
of de geschikte commando’s uit om ze op te halen.
Hier is een simpele GET-aanvraag:
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import qualified Data.ByteString.Lazy.Char8 as L8
main :: IO ()
main = do
manager <- newManager tlsManagerSettings
request <- parseRequest "http://httpbin.org/get"
response <- httpLbs request manager
L8.putStrLn $ responseBody response
Dit zal de JSON die je hebt ontvangen van httpbin.org
afdrukken.
Diepgaand
Vroeger waren Haskell’s HTTP-verzoeken minder rechttoe rechtaan, maar bibliotheken zoals http-client
hebben het proces vereenvoudigd.
Alternatieven? Zeker. Er zijn wreq
, req
, en anderen, vaak met syntactische versieringen of extra functies. Maar http-client
is als dat betrouwbare Zwitserse zakmes in je lade - het klaart altijd de klus.
Onder de motorkap gebruikt http-client
een Manager
om connecties te beheren. Het is efficiënt en hergebruikt sockets. Je kunt het afstemmen, maar standaardinstellingen zijn prima om mee te beginnen.
Zie Ook
Om je toolkit uit te breiden, bekijk deze: