我想复制这个功能:
curl -d "user=username&passwd=passwd&api_type=json" http://www.reddit.com/api/login/username
我遇到了至少 3 个以迂回方式提供此功能的库http-conduit
:network-http
和curl
. 什么库是发出 http 请求的标准,我将如何使用它来发出这个 post 请求?
我应该指定我也想阅读回复。
我想复制这个功能:
curl -d "user=username&passwd=passwd&api_type=json" http://www.reddit.com/api/login/username
我遇到了至少 3 个以迂回方式提供此功能的库http-conduit
:network-http
和curl
. 什么库是发出 http 请求的标准,我将如何使用它来发出这个 post 请求?
我应该指定我也想阅读回复。
标准库是HTTP。它与 Haskell 平台一起提供。
HTTP 包支持 Haskell 中的客户端 Web 编程。它允许您设置 HTTP 连接、传输请求和处理返回的响应,所有这些都在 Haskell 的舒适范围内。它依赖于网络包来运行,但除此之外,实现都是用Haskell编写的。
提供了用于发出单个 HTTP 请求 + 接收响应的基本 API。最重要的是,还提供了会话级抽象(BrowserAction monad);它负责处理持久连接、代理、状态(cookies)和身份验证凭据的管理,以处理与 Web 服务器的多步交互。
流经的字节表示可以通过使用类型类进行扩展,让您选择最适合您使用的请求和响应的表示。为您提供了一些预打包的常用实例(ByteString、String。)
如果 HTTP 包由于某种原因不适合,Hackage 上有很多包,正如您所指出的,包括直接 curl 绑定、各种高级绑定以及专注于性能的绑定。