Ruby是否有cURL库?
答案 0 :(得分:91)
Curb和Curl::Multi为Ruby提供了cURL绑定。
答案 1 :(得分:35)
如果你喜欢它的低级别,那么还有Typhoeus,它建立在Curl :: Multi之上。
答案 2 :(得分:30)
答案 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