Haskell:
Envoi d'une requête HTTP

How to:

Haskell est élégant. Utilisons http-client pour envoyer une requête GET simple.

import Network.HTTP.Client
import Network.HTTP.Types.Status (statusCode)

main :: IO ()
main = do
    manager <- newManager defaultManagerSettings
    request <- parseRequest "http://httpbin.org/get"
    response <- httpLbs request manager
    putStrLn $ "Le statut: " ++ show (statusCode $ responseStatus response)
    print $ responseBody response

Output:

Le statut: 200
"{\"args\":{},\"headers\":{...},\"origin\":\"...\",\"url\":\"http://httpbin.org/get\"}"

Simple, non?

Deep Dive:

Historiquement, http-client est la bibliothèque go-to pour HTTP avec Haskell, manifestant l’approche minimaliste de Haskell. Pour HTTP/2 ou des fonctions multithreading, regardez http2-client. Les détails comme la gestion des headers ou des cookies sont fins, mais la doc couvre ça en profondeur.

See Also: