是否有针对Ruby的cURL库?
Answers:
Curb和Curl :: Multi为Ruby提供cURL绑定。
您也可以看看Rest-Client
该eat
宝石是“替代”为OpenURI:
# first do gem install eat
require 'eat'
eat('http://yahoo.com') #=> String
eat('/home/seamus/foo.txt') #=> String
eat('file:///home/seamus/foo.txt') #=> String
它在后台使用HTTPClient。它还有一些选择:
eat('http://yahoo.com', :timeout => 10) # timeout after 10 seconds
eat('http://yahoo.com', :limit => 1024) # only read the first 1024 chars
eat('https://yahoo.com', :openssl_verify_mode => 'none') # don't bother verifying SSL certificate
如果您知道如何将请求作为curl
命令编写,那么有一个在线工具可以将其转换为ruby(2.0+)代码:curl-to-ruby
目前,它知道下面的选项:-d/--data
,-H/--header
,-I/--head
,-u/--user
,--url
,和-X/--request
。它是开放的贡献。
添加了一个更新的答案,HTTPClient是另一个使用libcurl的Ruby库,它支持并行线程和大量curl插件。我对任何不重要的应用程序都使用HTTPClient和Typhoeus。
这是我编写的一个用于获取一些文件的小程序。
base = "http://media.pragprog.com/titles/ruby3/code/samples/tutthreads_"
for i in 1..50
url = "#{ base }#{ i }.rb"
file = "tutthreads_#{i}.rb"
File.open(file, 'w') do |f|
system "curl -o #{f.path} #{url}"
end
end
我知道这可能会更雄辩,但可以达到目的。看看这个。我今天才把它拼凑起来,因为我厌倦了转到每个URL来获取源代码下载中未包含的书的代码。