4

我正在尝试使用 RubyGem Curb 构建文件下载器。(看看这个问题。)

我正在尝试下载一个 zip 文件,然后使用 File 类我试图实际制作该文件,以便我可以在 Finder 中双击它(我在 OS X 上)。我将如何将这个“卷曲”的身体转换为 zip 文件。

require 'rubygems'
require 'curb'

class Download
  def start
    curl = Curl::Easy.new('http://wordpress.org/latest.zip')
    curl.perform
    curl.on_body {
      |d| f = File.new('test.zip', 'w') {|f| f.write d}
    }
  end
end

dl = Download.new
dl.start

我没有收到任何错误,也找不到任何文件。我已经尝试过没有区别的绝对路径。

4

2 回答 2

4

我正在使用红宝石 2.0

我的代码是:

curl = Curl::Easy.new('http://somepage.cz/index.html')
curl.on_body do |d|
  f = File.open('output_file.html', 'w') {|f| f.write(d)}
end
curl.perform

我不得不更改File.newFile.open没有这个它不起作用。走到curl.perfom最后确实对我有帮助。

于 2013-10-03T20:51:42.497 回答
2

on_body在调用 之后添加事件perform,这会传输正文。如果您将事件声明移到perform调用之前,这应该可以工作。

于 2011-03-21T20:34:24.080 回答