Équivalent de cURL pour Ruby?

Existe-t-il une bibliothèque cURL pour Ruby?

Utilisez OpenURI et

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

accéder à des sites / pages / ressources nécessitant une authentification HTTP.

Curb et Curl :: Multi fournissent des liaisons cURL pour Ruby.

Si vous l’aimez moins bas, il y a aussi Typhoeus , qui est construit sur Curl :: Multi.

Curb-fu est une enveloppe autour de Curb qui utilise à son tour libcurl. Que propose Curb-fu sur Curb? Juste beaucoup de sucre syntaxique – mais cela peut souvent être ce dont vous avez besoin.

Les clients HTTP sont une bonne page pour vous aider à prendre des décisions concernant les différents clients.

Vous pourriez aussi jeter un coup d’œil à Rest-Client

la gem eat est un “remplacement” pour OpenURI:

 # first do gem install eat require 'eat' eat('http://yahoo.com') #=> Ssortingng eat('/home/seamus/foo.txt') #=> Ssortingng eat('file:///home/seamus/foo.txt') #=> Ssortingng 

Il utilise HTTPClient sous le capot. Il a aussi quelques options:

 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 certificatee 

Il ya aussi Mechanize , qui est un client de grattage Web de très haut niveau, et utilise Nokogiri pour l’parsing HTML.

Si vous savez écrire votre requête en tant que commande curl , il existe un outil en ligne qui peut le transformer en code ruby ​​(2.0+): curl-to-ruby

Actuellement, il connaît les options suivantes: -d/--data , -H/--header , -I/--head , -u/--user , --url et -X/--request . Il est ouvert aux consortingbutions .

En ajoutant une réponse plus récente, HTTPClient est une autre bibliothèque Ruby qui utilise libcurl, prend en charge les threads parallèles et de nombreux avantages curl. J’utilise HTTPClient et Typhoeus pour toutes les applications non sortingviales.

Voici un petit programme que j’ai écrit pour obtenir des fichiers.

 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 

Je sais que cela pourrait être un peu plus éloquent, mais cela sert son but. Vérifiez-le. Je viens de le bricoler ensemble parce que j’en avais marre d’aller à chaque URL pour obtenir le code du livre qui n’était pas inclus dans le téléchargement source.