dev*_*and 6 proxy networking haskell
我正在试图弄清楚如何使用将使用代理的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)
从文档为simpleHTTP:
simpleHTTP req传送Request req通过打开直接到HTTP服务器,非持久连接...如果你有调解通过HTTP代理请求,你将不得不自己正常化的要求.或者切换到使用Network.Browser.
我不确定作者的意思是"自己规范化请求".我不知道如何使用simpleHTTPin Network.HTTP-I认为你必须使用它Network.HTTP.HandleStream.
那么为什么不使用Network.Browser呢?它非常方便:
import Control.Applicative ((<$>))
import Data.Maybe (fromJust)
import Network.Browser
import Network.HTTP
import Network.HTTP.Proxy (parseProxy)
main = do
rsp <- browse $ do
setProxy . fromJust $ parseProxy "127.0.0.1:8118"
request $ getRequest "http://www.google.com"
print $ rspBody <$> rsp
Run Code Online (Sandbox Code Playgroud)