Haskell:
Enviando una solicitud http
Cómo Hacerlo:
Haskell ofrece varias bibliotecas para gestionar HTTP. Vamos a usar http-conduit por su simplicidad y potencia. Primero, instálalo con:
cabal update
cabal install http-conduitAquí hay un ejemplo simple de cómo enviar una solicitud GET:
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Simple
main :: IO ()
main = do
response <- httpLBS "http://httpbin.org/get"
putStrLn $ "El status code es: " ++ show (getResponseStatusCode response)
putStrLn $ "La respuesta es: "
print $ getResponseBody responseEjecuta y obtendrás algo parecido a:
El status code es: 200
La respuesta es:
"{\"args\":{},\"headers\":{\"Accept-Encoding\":\"gzip\",\"Host\":\"httpbin.org\",\"User-Agent\":\"haskell http-conduit/2.3.7.3\",\"X-Amzn-Trace-Id\":\"Root=1-5e..."}," ... (más datos aquí)Inmersión Profunda:
El protocolo HTTP (HyperText Transfer Protocol) es el fundamento de la comunicación en la web. Haskell, aunque no conocido por su soporte de IO en comparación con lenguajes como JavaScript o Python, tiene bibliotecas muy competentes para lidiar con HTTP.
http-conduit es parte del proyecto conduit que maneja el flujo de datos. Es potente y maneja automáticamente conexiones, codificación y otros aspectos tediosos.
Alternativas como wreq o req ofrecen abstracciones diferentes. Elije uno basado en tus necesidades y preferencias. Por ejemplo, wreq es genial para trabajar con JSON, mientras que req ofrece un tipo de safety atractivo con su API.
Internamente, estas bibliotecas manejan conexiones de red, protocolos de bajo nivel y representación de datos para facilitar la vida del programador.
Ver También:
- Tutorial
http-conduit: https://haskell-lang.org/library/http-client - Documentación de
wreq: http://www.serpentine.com/wreq/ - Documentación de
req: https://hackage.haskell.org/package/req - Guía para principiantes sobre HTTP: https://developer.mozilla.org/es/docs/Web/HTTP
Explora estos recursos para profundizar tus conocimientos en Haskell y el manejo de solicitudes HTTP. ¡Feliz codificación!