相当于Ruby的cURL?

时间:2009-05-30 12:18:56

标签: ruby curl

Ruby是否有cURL库?

12 个答案:

答案 0 :(得分:91)

CurbCurl::Multi为Ruby提供了cURL绑定。

答案 1 :(得分:35)

如果你喜欢它的低级别,那么还有Typhoeus,它建立在Curl :: Multi之上。

答案 2 :(得分:30)

使用OpenURI

  open("http://...", :http_basic_authentication=>[user, password])

访问需要HTTP身份验证的网站/网页/资源。

答案 3 :(得分:9)

Curb-fu是Curb的包装器,后者又使用libcurl。 Curb-fu比Curb提供什么?只是很多语法糖 - 但这通常是你需要的。

答案 4 :(得分:7)

您可能还要查看Rest-Client

答案 5 :(得分:7)

HTTP clients是一个帮助您决定各种客户的好页面。

答案 6 :(得分:6)

eat gem是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

答案 7 :(得分:6)

如果您知道如何以curl命令编写请求,则可以使用在线工具将其转换为ruby(2.0+)代码:curl-to-ruby

目前,它知道以下选项:-d/--data-H/--header-I/--head-u/--user--url-X/--request。它是open to contributions

答案 8 :(得分:5)

还有Mechanize,它是一个非常高级别的网络抓取客户端,并使用Nokogiri进行HTML解析。

答案 9 :(得分:4)

添加更新的答案,HTTPClient是另一个使用libcurl的Ruby库,支持并行线程和许多卷曲好东西。我使用HTTPClient和Typhoeus来处理任何非平凡的应用程序。

答案 10 :(得分:4)

这是我写的一个小程序来获取一些文件。

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来获取源代码中没有包含的书的代码。

答案 11 :(得分:1)

为了说明可能太明显了,刻度线也执行Ruby中的shell代码。假设您的Ruby代码在具有curl的shell中运行:

puts `curl http://www.google.com?q=hello`

result = `
  curl -X POST https://www.myurl.com/users \
  -d "name=pat" \
  -d "age=21"
` 
puts result