首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Network.HTTP.Enumerator迁移到Network.HTTP.Conduit

从Network.HTTP.Enumerator迁移到Network.HTTP.Conduit
EN

Stack Overflow用户
提问于 2012-02-06 08:45:09
回答 1查看 284关注 0票数 3

我不知道为什么我的代码崩溃了。起初,我认为这是因为parseURLrequestHeaders提供了[]。好吧,也许我只需要告诉它resquestHeaders应该是什么。好吧,我检查了从我的旧的工作代码中生成的requestHeaders。它也返回一个[]。所以现在我已经没有想法了。下面是旧的工作代码,遵循我在GHCi中用新的基于管道的库尝试的东西。

代码语言:javascript
复制
captureRawJson :: IO Response
captureRawJson = do
    nManager <- newManager
    jRequest <- parseUrl url :: (IO (Request IO))
    jResponse <- httpLbsRedirect jRequest nManager
    closeManager nManager
    return jResponse

上面的工作很好,这是我在迁移时一直在尝试做的事情,以及我收到的错误。

代码语言:javascript
复制
Prelude Network.HTTP.Conduit> nManager <- newManager def
Prelude Network.HTTP.Conduit> jRequest <- parseUrl "https://10.69.69.1/cgi-bin/qaLinkEditor.cgi?json=1" :: (IO (Request IO))
Prelude Network.HTTP.Conduit> let response = httpLbs jRequest nManager
Prelude Network.HTTP.Conduit Control.Monad.Trans.Resource> runResourceT response
*** Exception: error unexpected packet: Handshake [ServerHelloDone]

如你所见,这几乎是一模一样的代码。因此,我希望得到关于哪些方面发生了变化的反馈,以及我应该更密切地关注哪些方面。另外,如何检查在客户端代码和服务器之间来回发送的http标头?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 14:13:20

我相信通过对tls包进行一些更改,这个问题已经解决了。我刚刚发布了http-conduit 1.2.5,请看看它是否解决了这个问题。

如果仍然收到错误消息,可能是SSL证书与您要连接的主机名不匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9154504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档