Есть ли способ совершать https звонки с помощью пакета Network.Browser.Я не вижу этого в документации по Hackage .
Если нет способа сделать это с помощью обзора, есть ли другой способ получить https-страницы?
Мой текущийтестовый код:
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
Я выполняю nc -l -p 8000 и наблюдаю за выводом.Я вижу, что он не зашифровывает его, когда я retrieveUrl https://localhost:8000
Также, когда я пробую настоящий https-сайт, я получаю:
Network.Browser.request: Error raised ErrorClosed
*** Exception: user error (Network.Browser.request: Error raised ErrorClosed)
Редактировать:Решение Network.Curl (для выполнения вызова SOAP)
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"