Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Clojure http客户端库的优缺点_Java_Http_Clojure - Fatal编程技术网

Java Clojure http客户端库的优缺点

Java Clojure http客户端库的优缺点,java,http,clojure,Java,Http,Clojure,我正试图用Clojure编写一个http文件下载程序,在年,有人评论说,使用专用http客户端库比使用Clojure和Java自己的api编码要好。我做了一些研究,发现了一些,但我无法找出每种方法的特点、优点和缺点。因此,如果有人能解释它们的不同之处,以及哪一个与我的项目很匹配,那将不胜感激-D 最初使用Java的库以及相应的Clojure包装器: 和它的Clojure包装 找不到任何Clojure包装 我猜Clojure的“包装器”是什么 和它的Clojure包装 最后但并非最不重要的是,Cl

我正试图用Clojure编写一个http文件下载程序,在年,有人评论说,使用专用http客户端库比使用Clojure和Java自己的api编码要好。我做了一些研究,发现了一些,但我无法找出每种方法的特点、优点和缺点。因此,如果有人能解释它们的不同之处,以及哪一个与我的项目很匹配,那将不胜感激-D

最初使用Java的库以及相应的Clojure包装器:

和它的Clojure包装

找不到任何Clojure包装

我猜Clojure的“包装器”是什么

和它的Clojure包装

最后但并非最不重要的是,Clojure库:


我不打算对您发布的库进行全面比较,因为我没有使用所有库。但我以前用过图书馆,它真的很好


http工具包很容易使用,顺便说一句,它是按照CLJHTTP库建模的,而且性能非常好。虽然这个比较并不是直接针对您的问题,但它仍然可以说明一些问题:

我只能比较http kit和clj http

clj http:

  • 简单API
  • 仅HTTP客户端
  • apachehttpcomponents的包装器
http工具包:

  • 为异步设计
  • HTTP客户端和服务器,功能更强大
  • 客户端API以clj http为模型,但它添加了更多抽象,因此认知负载更高
如果您关心依赖关系,http kit可能是一个更好的选择,因为它是一个独立的库,除了clojure.core之外没有其他依赖关系。因此,它生产更小的Uberjar。对于示例HTTP GET项目:

clj-http:

1.2M    clj-http-test-0.1.0-SNAPSHOT.jar
6.7M    clj-http-test-0.1.0-SNAPSHOT-standalone.jar

http-kit:

65K     http-kit-test-0.1.0-SNAPSHOT.jar
3.8M    http-kit-test-0.1.0-SNAPSHOT-standalone.jar

另一方面,如果您更愿意信任经过战斗测试的Apache HttpComponents和来自更大Java社区的潜在更好的支持,您可以选择clj http。

我并没有建议Clojure API比Java API更好。顺便说一句,我所说的Clojure API感觉更自然!)@凯龙:谢谢你加起来-D