使用Clojure发出HTTP请求

时间:2013-08-08 10:19:45

标签: http clojure

我刚刚开始学习Clojure,并且在过去几年中我一直在努力应对API的变化。特别是在1.2中,contrib中有一个http-agent函数,它允许非常简单的HTTP请求:

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

此功能已被删除,现在您应该使用 clojure.java.io 或第三方解决方案,例如 http-kit clj- HTTP 即可。

我真的很惊讶,因为java.io似乎低得多,并且失去了简单性或http代理,并且使http请求看起来像应该在核心库集中(我意识到这是非常主观的) )。

删除http-agent的理由是什么?它不符合Clojure的核心理念吗?什么是用于基本HTTP请求的最佳库的建议

1 个答案:

答案 0 :(得分:9)

我无法做出关于旧贡献的任何特定部分未能进入新贡献的原因的权威性陈述,但总的来说,当有足够多的人感兴趣时,事情被移除了,包括一些有能力并愿意维持新的库。也许在这种情况下,根本没有足够的兴趣。

此外,在多个库之上构建Clojure项目非常简单,并且目前尚不清楚核心库或contrib中是否存在http客户端库会使事情变得更简单和/或更容易开发人员比现在更好,在更广泛的生态系统中提供了出色的选择。

至于这些优秀选项的特定示例,我会指向clj-httphttp.async.client(按字母顺序排列;哪一个适当取决于您是否可以从解雇您的请求中受益异步地)。