apo*_*ion 30
使用OpenURI和
open("http://...", :http_basic_authentication=>[user, password])
Run Code Online (Sandbox Code Playgroud)
访问需要HTTP身份验证的站点/页面/资源.
该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
Run Code Online (Sandbox Code Playgroud)
它使用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
Run Code Online (Sandbox Code Playgroud)
如果您知道如何将请求编写为curl命令,那么有一个在线工具可以将其转换为ruby(2.0+)代码:curl-to-ruby
目前,它知道下面的选项:-d/--data,-H/--header,-I/--head,-u/--user,--url,和-X/--request.它的贡献是开放的.
这是我编写的一个小程序,用于获取一些文件。
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
Run Code Online (Sandbox Code Playgroud)
我知道它可能更雄辩一些,但它达到了目的。一探究竟。我今天只是把它拼凑起来,因为我厌倦了去每个 URL 来获取源下载中未包含的书的代码。