是否有方法使用Network.Browser包進行https調用。 我在documentation on Hackage中看不到它。
如果沒有辦法做到瀏覽有另一種方式來獲取HTTPS頁面?Haskell Network.Browser 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,看輸出。 我看到,當我嘗試一個真正的HTTPS站點,我得到它沒有當我做retrieveUrl https://localhost:8000
而且它加密:
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"
你不應該接受這個答案;因爲SO是爲了每個人的利益 - 有一個公開的問題會刺激更多的答案(甚至是發展)。 – drozzy 2012-04-03 02:33:46
@drozzy即使答案已被排除,仍然值得回答。 http-conduit是一個更新的包,似乎是解決問題的更方便的答案。 – Davorak 2012-11-20 02:32:47