Эквивалент локона для Рубина?
есть ли библиотека cURL для Ruby?
11 ответов:
использовать OpenURI и
open("http://...", :http_basic_authentication=>[user, password])
доступ к сайтам / страницам / ресурсам, требующим проверки подлинности HTTP.
обочины и Curl:: Multi обеспечить скручивание привязки для Ruby.
Если вам нравится менее низкий уровень, есть также Typhoeus, который построен поверх Curl:: Multi.
Curb-fu это обертка вокруг бордюра, который в свою очередь использует libcurl. Что значит обуздать-фу предлагаем более обуздать? Просто много синтаксического сахара, но которые могут быть часто то, что вам нужно.
HTTP-клиентов это хорошая страница, чтобы помочь Вам принимать решения о различных клиентах.
вы также можете взглянуть на Rest-Client
the
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
там же механизировать, который является очень высокоуровневым клиентом веб-очистки и использует Nokogiri для синтаксического анализа HTML.
если вы знаете, как написать свой запрос как
curl
команда, есть онлайн-инструмент, который может превратить его в ruby (2.0+) код:curl-to-rubyв настоящее время он знает следующие варианты:
-d/--data
,-H/--header
,-I/--head
,-u/--user
,--url
и-X/--request
. Это открыть вклад.
добавление более позднего ответа, HTTPClient - это еще одна библиотека Ruby, которая использует libcurl, поддерживает параллельные потоки и множество лакомств 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, чтобы получить код для книги, которая не была включена в исходную загрузку.