我不知道为什么我的代码会崩溃。一开始我以为是因为parseURL
gives []
为了requestHeaders
。好吧,也许我只需要告诉它 resquestHeaders 应该是什么。嗯,我检查了requestHeaders
从我的旧的工作代码生成。它也返回一个[]
。所以现在我没有主意了。下面是旧的工作代码,遵循我在 GHCi 中尝试使用基于新管道的库的事情。
captureRawJson :: IO Response
captureRawJson = do
nManager <- newManager
jRequest <- parseUrl url :: (IO (Request IO))
jResponse <- httpLbsRedirect jRequest nManager
closeManager nManager
return jResponse
上面的工作正常,这是我在迁移时一直尝试做的事情,以及我收到的错误。
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 标头?
我相信这个问题可以通过 tls 包中的一些更改来解决。我刚刚发布了http-conduit 1.2.5,请看一下是否解决了问题。
如果您仍然收到错误消息,则可能是 SSL 证书与您要连接的主机名不匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)