Подтвердить что ты не робот

Эквивалент cURL для Ruby?

Есть ли библиотека cURL для Ruby?

4b9b3361

Ответ 1

Используйте OpenURI и

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

доступ к сайтам/страницам/ресурсам, которые требуют аутентификации HTTP.

Ответ 2

Curb и Curl:: Multi обеспечивают cURL привязки для Ruby.

Ответ 3

Если вам нравится менее низкий уровень, есть также Typhoeus, который построен поверх Curl:: Multi.

Ответ 4

Curb-fu - обертка вокруг Curb, которая, в свою очередь, использует libcurl. Что предлагает Curb-fu для Curb? Просто синтаксический сахар - но это может быть часто, что вам нужно.

Ответ 5

Вы также можете посмотреть Rest-Client

Ответ 6

HTTP-клиенты - хорошая страница, которая поможет вам принимать решения о различных клиентах.

Ответ 7

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

Ответ 8

Там также Mechanize, который является очень высокоуровневым клиентом веб-скрепок и использует Nokogiri для разбора HTML.

Ответ 9

Добавление более позднего ответа HTTPClient - это еще одна библиотека Ruby, которая использует libcurl, поддерживает параллельные потоки и множество плюшевых лакомств. Я использую HTTPClient и Typhoeus для любых нетривиальных приложений.

Ответ 10

Вот небольшая программа, которую я написал, чтобы получить некоторые файлы.

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

Если вы знаете, как написать свой запрос как команду curl, есть онлайн-инструмент, который может превратить его в код ruby ​​(2.0+): curl-to-ruby

В настоящее время он знает следующие параметры: -d/--data, -H/--header, -I/--head, -u/--user, --url и -X/--request. открыт для вкладов.