在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
,因为这些行为中的任何一种可能会在将来发生变化。