Java 咕噜咕噜http://foobar.mp3 那就转到http://fizzbar.mp3 在Clojure

Java 咕噜咕噜http://foobar.mp3 那就转到http://fizzbar.mp3 在Clojure,java,http,clojure,download,slurp,Java,Http,Clojure,Download,Slurp,我正在尝试通过编程从下载mp3文件。 当我打开url时,例如: 它重定向到一个url,如: 如果我curl第一个url,它将下载一个空文件 如果Icurl-L第一个url,它将正确下载文件 如果我curl第二个url,它会正确下载文件 如果我slurpClojure中的第一个url,它会下载一些看起来像mp3的东西(很大,没有清晰的文本),但是无法播放,并且与curl-L的输出不一样 如果我slurpClojure中的第二个url,它也会下载一些看起来像mp3的东西(很大,没有易读的文本),但无

我正在尝试通过编程从下载mp3文件。 当我打开url时,例如: 它重定向到一个url,如:

如果我
curl
第一个url,它将下载一个空文件

如果I
curl-L
第一个url,它将正确下载文件

如果我
curl
第二个url,它会正确下载文件

如果我
slurp
Clojure中的第一个url,它会下载一些看起来像mp3的东西(很大,没有清晰的文本),但是无法播放,并且与
curl-L
的输出不一样

如果我
slurp
Clojure中的第二个url,它也会下载一些看起来像mp3的东西(很大,没有易读的文本),但无法播放,与
curl-L
的输出不一样,与前一个
slurp
的输出相同

➜  ~ 吉特:(硕士)✗ ls-l*.mp3
-rw-r--r--1亚当38038533二月23日08:32 curl-url1.mp3
-rw-r--r--1 adam adam 38038533 Feb 23 08:37 curl-url2.mp3
-rw-r--r--1亚当亚当亚当2月23日08:45卷曲不带L.mp3
-rw-r--r--1亚当67144297 2月23日08:31 slurp-url1.mp3
-rw-r--r--1 adam 67144297 Feb 23 08:31 slurp-url2.mp3

正如你们所看到的,无论我在咕噜什么,它几乎是我在卷发的两倍大


我不知道该怎么理解,我是否在不恰当的上下文中使用了
slurp
?任何建议都将不胜感激

slurp
用于字符串,因此无法处理二进制数据

user=> (doc slurp)
-------------------------
clojure.core/slurp
([f & opts])
  Opens a reader on f and reads all its contents, returning a string.
  See clojure.java.io/reader for a complete list of supported arguments.

虽然无法对二进制数据进行slurp,但以下函数将执行类似于
slurp
的操作,但接受二进制流:

(定义将uri复制到文件[uri文件]
(使用open[in(clojure.java.io/input-stream uri)
out(clojure.java.io/output-stream文件)]
(clojure.java.io/copy-in-out))

对于此特定示例,可以按如下方式下载mp3文件:

(将uri复制到文件”http://menlochurch.podbean.com/mf/feed/5gv2gb/170219_jortberg.mp3“foo.mp3”)

学分: