Haskell代理Post请求
我有以下代码与代理一起处理GET请求:Haskell代理Post请求,haskell,proxy,Haskell,Proxy,我有以下代码与代理一起处理GET请求: 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
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
import-Control.Applicative(())
导入数据。可能(fromJust)
导入网络浏览器
导入网络.HTTP
导入Network.HTTP.Proxy(parseProxy)
main=do
rsp如果你能跟踪你正在做的事情,那就很简单了
我们需要使用request
,但将POST请求而不是GET请求提供给它。为了实现这些功能,我们使用postRequestWithBody
,Hackage告诉我们有参数
postRequestWithBody :: String | URL to POST to
-> String | Content-Type of body
-> String | The body of the request
-> Request_String | The constructed request
因此,请替换request$getRequest“http://www.google.com“
带有:
request $ postRequestWithBody "http://www.geocodeip.com/" "application/x-www-form-urlencoded" "IP=79.212.82.103"
…你会很好的。谢谢,很好用。但是@CRDrost您能为https url添加一个“补丁”吗?我在这里找到了一个使用https的hwo示例:但我不知道如何实现它。谢谢,我的意思是我认为这是一个单独的问题,但是这个库显然是以requestTemplate=parseUrl”开头的https://www.google.com/“
(或其他)然后您将创建一个代理({-#语言:重载字符串#-}
向上,然后myProxy=proxy”127.0.0.1“8118
),然后,您可以使用记录语法和提供的urlEncodedBody
函数,request=urlEncodedBody[(“IP”,“79.212.82.103”)](requestTemplate{proxy=Just myProxy})
来设置请求。然后newManager>>=http请求
用于一个查询,或者您将使用do
缓存管理器。)
request $ postRequestWithBody "http://www.geocodeip.com/" "application/x-www-form-urlencoded" "IP=79.212.82.103"