增加对Network.HTTP.Conduit的请求超时

乌利·科勒(Uli Koehler)

我使用http-conduit库版本2.0+从HTTP Web服务获取内容:

import Network.HTTP.Conduit
main = do content <- simpleHttp "http://stackoverflow.com"
          print $ content

docs中所述,默认超时为5秒。

注意:这个问题已由我立即回答,因此有意不作进一步的研究。

乌利·科勒(Uli Koehler)

类似于上一个问题,您不能一个人做到这一点simpleHttp您需要将和Manager一起使用httpLbs才能设置超时时间。

请注意,您无需在管理器中设置超时,但可以为每个请求分别设置超时。

这是一个完整的示例,其行为类似于您的上述功能,但允许您修改超时:

import Network.HTTP.Conduit
import Control.Monad (liftM)
import qualified Data.ByteString.Lazy.Char8 as LB

-- | A simpleHttp alternative that allows to specify the timeout
-- | Note that the timeout parameter is in microseconds!
downloadHttpTimeout :: Manager -> String -> Int -> IO LB.ByteString
downloadHttpTimeout manager url timeout = do req <- parseUrl url
                                             let req' = req {responseTimeout = Just timeout}
                                             liftM responseBody $ httpLbs req' manager

main = do manager <- newManager conduitManagerSettings
          let timeout = 15000000 -- Microseconds --> 15 secs
          content <- downloadHttpTimeout manager "http://stackoverflow.com" timeout
          print $ content

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CXF-http-conf:conduit超时被忽略

来自分类Dev

LBAPI请求的超时增加

来自分类Dev

LBAPI请求的超时增加

来自分类Dev

Xamarin HTTP请求中的超时

来自分类Dev

Dart Http包请求超时

来自分类Dev

ionic http请求加载超时

来自分类Dev

AngularJS:使用超时属性取消$ http请求

来自分类Dev

使用RestTemplate的Http请求超时的SimpleClientHttpRequestFactory与HttpComponentsClientHttpRequestFactory

来自分类Dev

模拟使用HTTPretty超时的HTTP请求

来自分类Dev

goroutine和Http请求中的超时

来自分类Dev

同步HTTP请求的最大合理超时

来自分类Dev

通过超时建立http请求-Java

来自分类Dev

如何在超时时重试HTTP请求?

来自分类Dev

node-http-proxy POST请求超时

来自分类Dev

防止有角度的 http post 请求超时

来自分类Dev

在Network.HTTP.Conduit中禁用SSL / TLS证书验证

来自分类Dev

在Network.HTTP.Conduit中禁用SSL / TLS证书验证

来自分类Dev

FSharp.Data HTTP请求-无法设置请求超时

来自分类Dev

在ExtJs中增加Ajax请求超时

来自分类Dev

PHP通过使用使用http请求的模块来防止超时

来自分类Dev

AngularJS $ http服务请求的默认超时是多少?

来自分类Dev

请求和响应处理之间的HTTP断开连接/超时

来自分类Dev

http发布请求中的Angular2超时

来自分类Dev

如何为我的HTTP服务器指定请求超时?

来自分类Dev

angularjs:超时在$ http POST请求中不起作用

来自分类Dev

发出http GET请求时出现超时错误

来自分类Dev

使用HTTP.jl设置获取请求的超时

来自分类Dev

通过POST请求调用外部HTTP时,Cloud Functions超时

来自分类Dev

无法在此节点http get请求中添加超时