¿Hay alguna manera de realizar llamadas https con el paquete Network.Browser? No lo estoy viendo en el documentation on Hackage.
Si no hay una manera de hacerlo con browse ¿hay alguna otra forma de recuperar páginas https?Haskell Network.Browser HTTPS Connection
Mi código de prueba actual es
import Network.HTTP
import Network.URI (parseURI)
import Network.HTTP.Proxy
import Data.Maybe (fromJust)
import Control.Applicative ((<$>))
import Network.Browser
retrieveUrl :: String -> IO String
retrieveUrl url = do
rsp <- browse $ request (Request (fromJust uri) POST [] "Body")
return $ snd (rspBody <$> rsp)
where uri = parseURI url
He estado corriendo nc -l -p 8000 y viendo la salida. veo que no cifra que cuando lo haga retrieveUrl https://localhost:8000
también cuando intento un sitio real https consigo:
Network.Browser.request: Error raised ErrorClosed
*** Exception: user error (Network.Browser.request: Error raised ErrorClosed)
Editar: solución Network.Curl (Para hacer un jabón llaman)
import Network.Curl (curlGetString)
import Network.Curl.Opts
soapHeader s = CurlHttpHeaders ["Content-Type: text/xml", "SOAPAction: " ++ s]
proxy = CurlProxy "proxy.foo.org"
envelope = "myRequestEnvelope.xml"
headers = readFile envelope >>= (\x -> return [ soapHeader "myAction"
, proxy
, CurlPost True
, CurlPostFields [x]])
main = headers >>= curlGetString "https://service.endpoint"
No debería haber aceptado esa respuesta; dado que SO es para el beneficio de todos, tener una pregunta abierta hubiera estimulado más respuestas (o incluso desarrollo). – drozzy
@drozzy aún vale la pena responder incluso si se ha exceptuado una respuesta. http-conduit es un paquete más nuevo y parece ser una respuesta más conveniente al problema. – Davorak