2

我想复制这个功能:

curl -d "user=username&passwd=passwd&api_type=json" http://www.reddit.com/api/login/username

我遇到了至少 3 个以迂回方式提供此功能的库http-conduitnetwork-httpcurl. 什么库是发出 http 请求的标准,我将如何使用它来发出这个 post 请求?

我应该指定我也想阅读回复。

4

1 回答 1

2

标准库是HTTP。它与 Haskell 平台一起提供。

HTTP 包支持 Haskell 中的客户端 Web 编程。它允许您设置 HTTP 连接、传输请求和处理返回的响应,所有这些都在 Haskell 的舒适范围内。它依赖于网络包来运行,但除此之外,实现都是用Haskell编写的。

提供了用于发出单个 HTTP 请求 + 接收响应的基本 API。最重要的是,还提供了会话级抽象(BrowserAction monad);它负责处理持久连接、代理、状态(cookies)和身份验证凭据的管理,以处理与 Web 服务器的多步交互。

流经的字节表示可以通过使用类型类进行扩展,让您选择最适合您使用的请求和响应的表示。为您提供了一些预打包的常用实例(ByteString、String。)

如果 HTTP 包由于某种原因不适合,Hackage 上有很多包,正如您所指出的,包括直接 curl 绑定、各种高级绑定以及专注于性能的绑定。

于 2012-05-16T01:39:23.610 回答