web-dev-qa-db-ja.com

RubyのcURLと同等ですか?

Ruby用のcURLライブラリはありますか?

69
user85748

OpenURI

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

hTTP認証を必要とするサイト/ページ/リソースへのアクセス。

30
apostlion

Curb および Curl :: Multi RubyにcURLバインディングを提供します。

91
grawity

低レベルが好きなら、Curl :: Multiの上に構築される Typhoeus もあります。

35
Skade

Curb-f はCurbのラッパーであり、Curbはlibcurlを使用します。 Curb-fuはCurbに対して何を提供しますか?多くの構文糖衣-しかし、それはしばしばあなたが必要とするものです。

9
Peter Cooper

Rest-Client もご覧ください。

7
Anh Do

HTTPクライアント は、さまざまなクライアントについて決定を下すのに役立つ良いページです。

7
Mr. Ronald

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
6
Seamus Abshere

リクエストをcurlコマンドとして記述する方法を知っている場合、それをRuby(2.0+)コードに変換できるオンラインツールがあります: curl- to-Ruby

現在、次のオプションを認識しています:-d/--data-H/--header-I/--head-u/--user--url、および-X/--request投稿に対してオープン です。

6
cbliard

Mechanize もあります。これは非常に高レベルのWebスクレイピングクライアントで、HTML解析にNokogiriを使用します。

5
method

以下は、いくつかのファイルを取得するために作成した小さなプログラムです。

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に移動するのにうんざりしたため、今日一緒にまとめました。

4

より最近の答えを追加すると、 HTTPClient は別のRuby libcurlを使用し、並列スレッドと多くのcurlグッズをサポートするライブラリです。HTTPClientとTyphoeusを非些細なアプリ。

4
the Tin Man

あまりにも明白なことを述べるために、目盛りはRuby=でシェルコードを実行します。Rubyコードがcurl

puts `curl http://www.google.com?q=hello`

または

result = `
  curl -X POST https://www.myurl.com/users \
  -d "name=pat" \
  -d "age=21"
` 
puts result
1
steel