Networking Haskell网络浏览器HTTPS连接
是否有一种使用Network.Browser包进行https呼叫的方法。 我没有在电视上看到它。Networking Haskell网络浏览器HTTPS连接,networking,haskell,https,Networking,Haskell,Https,是否有一种使用Network.Browser包进行https呼叫的方法。 我没有在电视上看到它。 如果没有一种方法可以通过浏览来获取https页面,还有其他方法吗 我当前的测试代码是 import Network.HTTP import Network.URI (parseURI) import Network.HTTP.Proxy import Data.Maybe (fromJust) import Control.Applicative ((<$>)) import Netwo
如果没有一种方法可以通过浏览来获取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
编辑:Network.Curl解决方案(用于执行SOAP调用)
过去我一直在想这一点,最后总是使用。如果有一个更简单的解决方案就好了,但是
Network.Curl
非常方便。如果您只想获取一个页面,这是最简单的方法。附件a:
import Network.HTTP.Wget
main = putStrLn =<< wget "https://www.google.com" [] []
import Network.HTTP.Wget
main=putStrLn=一个替代方案,也许更像Travis Brown在http管道中所说的“Haskell”解决方案:
要仅获取https页面,请执行以下操作:
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy as L
main = simpleHttp "https://www.noisebridge.net/wiki/Noisebridge" >>= L.putStr
下面显示了如何传递urlencode参数
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy as L
main = do
initReq <- parseUrl "https://www.googleapis.com/urlshortener/v1/url"
let req' = initReq { secure = True } -- Turn on https
let req = (flip urlEncodedBody) req' $
[ ("longUrl", "http://www.google.com/")
-- ,
]
response <- withManager $ httpLbs req
L.putStr $ responseBody response
{-#语言重载字符串}
导入Network.HTTP.conductor
将限定的Data.ByteString.Lazy作为L导入
main=do
initReq是的,我最终选择了Network.Curl。基于你的建议,谢谢你的帮助。@AlexKahn我相信这是正确的(仍然是在2013年)。在我刚刚注意到的一个模块中有一点提到,你不应该接受这个答案;因为这是为了每个人的利益——有一个开放的问题会刺激更多的答案(甚至发展)。@drozzy仍然值得回答,即使答案被排除在外。http导管是一个较新的包,似乎是解决这个问题的一个更方便的方法。
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy as L
main = simpleHttp "https://www.noisebridge.net/wiki/Noisebridge" >>= L.putStr
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy as L
main = do
initReq <- parseUrl "https://www.googleapis.com/urlshortener/v1/url"
let req' = initReq { secure = True } -- Turn on https
let req = (flip urlEncodedBody) req' $
[ ("longUrl", "http://www.google.com/")
-- ,
]
response <- withManager $ httpLbs req
L.putStr $ responseBody response