有没有办法使用Network.Browser包进行https调用.我没有在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
Run Code Online (Sandbox Code Playgroud)
我一直在运行nc -l -p 8000并观察输出.我看到当我执行retrieveUrl https:// localhost:8000时它没有对它进行加密
此外,当我尝试一个真正的https网站时,我得到:
Network.Browser.request: Error raised ErrorClosed
*** Exception: user error (Network.Browser.request: Error raised ErrorClosed)
Run Code Online (Sandbox Code Playgroud)
编辑:Network.Curl解决方案(用于执行SOAP调用)
import Network.Curl …Run Code Online (Sandbox Code Playgroud) 我正在试图弄清楚如何使用将使用代理的Network.HTTP.simpleHTTP进行基本的GET请求.
我已经尝试设置http_proxy环境变量,我想我了解如何使用Network.HTTP.Proxy创建代理.但是Hackage中的API似乎没有关于如何设置simpleHTTP调用或Request类型来使用代理的任何内容.
我目前的代码是:
import Network.HTTP
import Network.HTTP.Proxy
import Data.Maybe
main = do
let proxy = fromJust $ parseProxy "proxyserver.foo.com:80"
x <- simpleHTTP (getRequest "http://www.google.com") >>= getResponseBody
print x
Run Code Online (Sandbox Code Playgroud)