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: