在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风格的方式回答。
答案 0 :(得分:0)
正如newManager
docs中所列,您可以像这样导入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
,因为将来这些行为都可能会发生变化。