Haskell Https获取代理请求

时间:2015-12-15 17:14:25

标签: http haskell proxy get

我通过getRequest

开始工作Proxy
main = do
  rsp <- browse $ do
    setProxy . fromJust $ parseProxy "128.199.232.117:3128"
    request $ getRequest "https://www.youtube.com/watch?v=yj_wyw6Xrq4"
  print $ rspBody <$> rsp

但它是htpps所以基本上我得到了一个例外。但我发现here它也适用于htpps

import Network.Connection (TLSSettings (..))
import Network.HTTP.Conduit

main :: IO ()
main = do
    request <- parseUrl "https://github.com/"
    let settings = mkManagerSettings (TLSSettingsSimple True False False) Nothing
    manager <- newManager settings
    res <- httpLbs request manager
    print res

但我不知道如何将其集成到我的代理getRequest代码中?

有人可以告诉我吗?感谢

1 个答案:

答案 0 :(得分:1)

您似乎正在使用HTTP将其打包为第一个代码段,将http-conduit打包在第二个代码段中。

不幸的是HTTP不支持https,因此您无法整合&#34;第二个片段进入第一个片段。但http-conduit支持代理,因此您可以使用addProxy函数来设置代理主机和端口(未测试):

{-# LANGUAGE OverloadesStrings #-}
...
request <- do
  req <- parseUrl "https://github.com/"
  return $ addProxy "128.199.232.117" 3128 req
...