defaultManagerSettings不在network.http.conduit中的范围中



在http-conduit版本2.0 中,我想创建一个自定义Manager

文档指出defaultManagerSettings应在newManager中使用。

import Network.HTTP.Conduit
main = do manager <- newManager defaultManagerSettings
          print $ content

但是,在尝试运行它时,我会收到以下错误:

conduittest.hs:3:33:
    Not in scope: `defaultManagerSettings'
    Perhaps you meant `conduitManagerSettings' (imported from Network.HTTP.Conduit)

我可以使用conduitManagerSettings吗?如果没有,我可以从哪里导入 defaultManagerSettings

注意:这个问题故意没有显示进一步的研究工作,因为它立即以Q&amp; A型方式回答。

newManager文档中列出,您可以这样导入defaultManagerSettings

import Network.HTTP.Client (defaultManagerSettings)

让我们看看conduitManagerSettings是什么:

conduitManagerSettings :: ManagerSettings
conduitManagerSettings = tlsManagerSettings

Network.HTTP.Client.TLS中,tlsManagerSettings定义如下:

tlsManagerSettings :: ManagerSettings
tlsManagerSettings = mkManagerSettings def Nothing

好吧,这里没什么特别的。def来自Data.Default模块,因此定义了默认实例。但是defaultManagerSettings指定所有默认值。

我无法追踪instance Default ManagerSettings所在的位置。但是,我认为可以肯定地假设mkManagerSettings def Nothing具有与defaultManagerSettings相同的设置。

我个人建议使用defaultManagerSettings,因为这些行为中的任何一种可能会在将来发生变化。

相关内容

  • 没有找到相关文章

最新更新