Equivalente di cURL per Ruby?

Esiste una libreria CURL per Ruby?

Usa OpenURI e

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

accesso a siti / pagine / risorse che richiedono l’autenticazione HTTP.

Curb and Curl :: Multi fornisce i collegamenti cURL per Ruby.

Se ti piace meno a basso livello, c’è anche Typhoeus , che è costruito sopra Curl :: Multi.

Curb-fu è un involucro attorno a Curb che a sua volta usa libcurl. Cosa offre Curb-fu rispetto a Curb? Solo un sacco di zucchero sintattico – ma può essere spesso quello di cui hai bisogno.

I client HTTP sono una buona pagina per aiutarti a prendere decisioni sui vari client.

Potresti anche dare un’occhiata a Rest-Client

la gem eat è una “sostituzione” per 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 

Usa HTTPClient sotto il cofano. Ha anche alcune opzioni:

 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 

C’è anche Mechanize , che è un client di scraping del web di altissimo livello, e usa Nokogiri per l’analisi HTML.

Se sai come scrivere la tua richiesta come comando di curl , c’è uno strumento online che può trasformarlo in codice ruby (2.0+): curl-to-ruby

Attualmente, conosce le seguenti opzioni: -d/--data , -H/--header , -I/--head , -u/--user , --url e -X/--request . È aperto a contributi .

Aggiungendo una risposta più recente, HTTPClient è un’altra libreria di Ruby che usa libcurl, supporta i thread paralleli e molti extra. Io uso HTTPClient e Typhoeus per qualsiasi app non banale.

Ecco un piccolo programma che ho scritto per ottenere alcuni file con.

 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 

So che potrebbe essere un po ‘più eloquente, ma serve allo scopo. Controlla. L’ho semplicemente accoppiato oggi perché mi sono stancato di andare su ogni URL per ottenere il codice per il libro che non era incluso nel download di origine.