Haskell 神秘闭合手柄案例
首先我会给你代码,然后是错误,然后是一些类型信息。问题是:我怎样才能弄清楚到底发生了什么?我该如何解决这个问题Haskell 神秘闭合手柄案例,haskell,conduit,Haskell,Conduit,首先我会给你代码,然后是错误,然后是一些类型信息。问题是:我怎样才能弄清楚到底发生了什么?我该如何解决这个问题 readTask = do req' <- parseUrl "https://10.64.251.32/rest/api/latest/issue/BNAP-291" manager <- newManager manSettings let req'' = applyBasicAuth (pack "sandboxer") (pack "sandbo
readTask = do
req' <- parseUrl "https://10.64.251.32/rest/api/latest/issue/BNAP-291"
manager <- newManager manSettings
let req'' = applyBasicAuth (pack "sandboxer") (pack "sandboxer") req'
Response _ _ _ body <-runResourceT $ http req'' manager
pBody <- runResourceT $
body $$+- sinkParser json
-- print pBody
-- closeManager manager
return ()
where manSettings =
def
{ managerCheckCerts = \ _ _ -> return CertificateUsageAccept }
感谢反馈,我不知道如何开始对此进行故障排除。第一个
runResourceT
调用是在解析主体之前关闭套接字。您需要将这两个runResourceT
调用合并为一个调用ResourceT
是一个Monad
实例,因此您可以使用do
表示法,并在解析完成后进行一些小手术以释放套接字:
readTask = do
req' <- parseUrl "https://10.64.251.32/rest/api/latest/issue/BNAP-291"
manager <- newManager manSettings
let req'' = applyBasicAuth (pack "sandboxer") (pack "sandboxer") req'
runResourceT $ do
Response _ _ _ body <- http req'' manager
pBody <- body $$+- sinkParser json
liftIO $ print pBody
closeManager manager
return ()
where manSettings =
def
{ managerCheckCerts = \ _ _ -> return CertificateUsageAccept }
readTask=do
req'听起来像是另一方关闭了连接。http req''管理器
和body$$+-sinkparser json
调用不应该在一个runResourceT
中吗?类似这样的东西(只要它能编译):@Nathan-给那个人一个向上的投票。
Data.Conduit.Internal.ResumableSource
(Control.Monad.Trans.Resource.ResourceT IO)
Data.ByteString.Internal.ByteString
readTask = do
req' <- parseUrl "https://10.64.251.32/rest/api/latest/issue/BNAP-291"
manager <- newManager manSettings
let req'' = applyBasicAuth (pack "sandboxer") (pack "sandboxer") req'
runResourceT $ do
Response _ _ _ body <- http req'' manager
pBody <- body $$+- sinkParser json
liftIO $ print pBody
closeManager manager
return ()
where manSettings =
def
{ managerCheckCerts = \ _ _ -> return CertificateUsageAccept }