我正在尝试使用 HTTPS 从站点中抓取数据。我成功地使用 Network.HTTP.Conduit 发出基本请求(发布凭据等),但未能从响应标头(Set-Cookie)中提取 cookie 信息。看起来 http-conduit 有自己的处理 cookie的机制,我无法理解。
Network.HTTP.Conduit.Browser 似乎可以自动处理 cookie(这对我来说很好),但由于缺少文档,我无法让它工作。
有更多处理 http-conduit 浏览器模块经验的人可以告诉我如何:
- 处理自签名证书(我设法在基本模块中使用managerCheckCerts做到了这一点)
- 在正文中发送带有 URL 编码参数的 POST 请求,而不遵循任何重定向(我为此使用了基本模块中的urlEncodedBody )
- 在简单的 GET 请求中使用 2. 步骤中的 cookie,并将响应读取为(惰性)ByteString(我会为此使用httpLbs)
在我看来,与 Network.HTTP.Conduit 相比,Network.HTTP.Conduit.Browser 的抽象级别更适合我的应用程序,因此即使我可以使用后者手动处理 cookie,我也想进行切换。