gpt4 book ai didi

networking - 将 Haskell 的 SimpleHTTP 与代理一起使用?

转载 作者:行者123 更新时间:2023-12-03 16:24:15 26 4
gpt4 key购买 nike

我试图弄清楚如何使用将使用代理的 Network.HTTP.simpleHTTP 发出基本的 GET 请求。

我已经尝试设置 http_proxy 环境变量,并且我想我了解如何使用 Network.HTTP.Proxy 制作代理。但是在 Hackage 上的 API 中似乎没有关于如何设置 simpleHTTP 调用或请求类型以使用代理的内容。

我目前的代码是:

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

最佳答案

来自 documentation对于 simpleHTTP :

simpleHTTP req transmits the Request req by opening a direct, non-persistent connection to the HTTP server... If you have to mediate the request via an HTTP proxy, you will have to normalize the request yourself. Or switch to using Network.Browser instead.



我不太确定作者在这里所说的“自己规范化请求”是什么意思。我不明白 simpleHTTP 怎么可能?在 Network.HTTP —我认为您必须使用 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

关于networking - 将 Haskell 的 SimpleHTTP 与代理一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3857521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com