Ruby的cURL的等价物?
有Ruby的cURL库吗?
使用OpenURI和
open("http://...", :http_basic_authentication=>[user, password])
访问需要HTTPauthentication的网站/页面/资源。
Curb和Curl :: Multi提供Ruby的cURL绑定。
如果你喜欢它低级别,也有build立在Curl :: Multi之上的Typhoeus 。
Curb-fu是一个围绕着Curb的封装,而后者使用libcurl。 什么是路边福提供超过路边? 只是很多语法糖 – 但这往往是你所需要的。
HTTP客户端是一个很好的网页,可以帮助您做出有关各种客户端的决策。
你也可以看看Rest-Client
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 。 它也有一些select:
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
还有机械化 ,这是一个非常高级的网页抓取客户端,并使用Nokogiri进行HTMLparsing。
添加一个更近的答案, 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来获取未包含在源代码下载中的书的代码。
如果你知道如何把你的请求写成一个curl
命令,那么有一个在线工具可以把它变成ruby(2.0+)代码: curl-to-ruby
目前,它知道以下选项: -d/--data
, -H/--header
, -I/--head
, -u/--user
,– --url
和-X/--request
。 它愿意捐款 。