Эквивалент cURL для Ruby? - PullRequest
69 голосов
/ 30 мая 2009

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

Ответы [ 12 ]

91 голосов
/ 30 мая 2009

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

35 голосов
/ 30 мая 2009

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

30 голосов
/ 30 мая 2009

Использование OpenURI и

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

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

9 голосов
/ 31 мая 2009

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

7 голосов
/ 19 сентября 2012

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

7 голосов
/ 31 мая 2009

Вы также можете взглянуть на Rest-Client

6 голосов
/ 09 июня 2016

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

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

6 голосов
/ 29 января 2013

драгоценный камень eat является «заменой» для 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
5 голосов
/ 31 мая 2009

Существует также Механизация , которая является клиентом очень высокого уровня для работы с веб-интерфейсом и использует Nokogiri для анализа HTML.

4 голосов
/ 18 апреля 2014

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

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, чтобы получить код для книги, который не был включен в исходный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...