啜饮http://foobar.mp3,在Clojure中重定向到http://fizzbar.mp3

时间:2017-02-23 16:47:36

标签: java http clojure download slurp

我正在尝试以编程方式从this rss feed下载mp3文件。 当我打开一个网址,例如:http://menlochurch.podbean.com/mf/feed/5gv2gb/170219_jortberg.mp3 它会重定向到以下网址:http://s62.podbean.com/pb/67f34563539acbe87b9566ecc5738d57/58aeff8e/data4/fs145/948579/uploads/170219_jortberg.mp3

如果我curl第一个网址,则会下载一个空文件。

如果我curl -L第一个网址,它会正确下载该文件。

如果我curl第二个网址,它会正确下载该文件。

如果我是slurp Clojure中的第一个网址,它下载的内容看起来像一个mp3(很大且没有清晰的文字),但是无法播放,与curl -L的输出不一样。< / p>

如果我slurp Clojure中的第二个网址,它还会下载一些看似mp3的内容(很大且没有清晰的文字),但是无法播放,与curl -L的输出不一样与前一个slurp的输出相同。

➜ ~ git:(master) ✗ ls -l *.mp3 -rw-r--r-- 1 adam adam 38038533 Feb 23 08:32 curl-url1.mp3 -rw-r--r-- 1 adam adam 38038533 Feb 23 08:37 curl-url2.mp3 -rw-r--r-- 1 adam adam 0 Feb 23 08:45 curl-without-L.mp3 -rw-r--r-- 1 adam adam 67144297 Feb 23 08:31 slurp-url1.mp3 -rw-r--r-- 1 adam adam 67144297 Feb 23 08:31 slurp-url2.mp3

你可以看到我正在啜饮的东西,几乎是我卷曲的两倍。

我不知道该怎么做,我是否在不恰当的背景下使用slurp?任何建议将不胜感激!

1 个答案:

答案 0 :(得分:4)

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.