使用Clojure进行HTTP请求

13

我刚开始学习Clojure,对过去几年的API更改感到困难。特别是在1.2版本中,贡献里有一个http-agent函数,可以进行非常简单的HTTP请求:

 (http-agent "http..." :method "POST" :body "foo=1") 

该函数已被移除,现在似乎应该使用clojure.java.io或第三方解决方案,例如http-kitclj-http.

我很惊讶,因为java.io似乎更低级,并且失去了类似于http-agent的简单性,而制作http请求似乎是应该在核心库中的(我意识到这非常主观)。

为什么要删除http-agent?它是否符合Clojure的核心理念?以及建议用于基本HTTP请求的最佳库是什么?

1个回答

11

我无法对任何旧的contrib部分未能进入新的contrib的原因做出权威的陈述,但通常情况下,只有在足够多的人感兴趣时(包括一些有能力和愿意维护新库的人),才会移植过来。也许在这种情况下,就是没有足够的兴趣。

此外,在多个库的基础上构建Clojure项目非常简单,而且目前在整个生态系统中都有很好的选择,因此并不清楚将http客户端库放入核心库或contrib中是否会使开发人员的工作变得更加简单、易于操作。

至于这些优秀选择的具体示例,我会向您介绍clj-httphttp.async.client(按字母顺序排序;哪一个适合取决于您是否希望异步发送请求)。


Michal,非常感谢您的回答。我的问题源于对Clojure环境的无知,您的回复将使我更进一步地了解它。也感谢您的建议。 - Alistair77

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接