Có thư viện cURL cho Ruby không?Tương đương cURL cho Ruby?
Trả lời
Sử dụng OpenURI và
open("http://...", :http_basic_authentication=>[user, password])
truy cập vào trang web/trang/nguồn lực mà yêu cầu xác thực HTTP.
Curb và Curl::Multi cung cấp các ràng buộc cURL cho Ruby.
Ngoài ra còn có Mechanize, là một trình duyệt web có mức độ rất cao và sử dụng Nokogiri để phân tích cú pháp HTML.
Curb-fu là một wrapper quanh Curb mà lần lượt sử dụng libcurl. Curb-fu cung cấp gì hơn Curb? Chỉ cần rất nhiều cú pháp - nhưng đó có thể là những gì bạn cần.
Thêm câu trả lời gần đây hơn, HTTPClient là một thư viện Ruby khác sử dụng libcurl, hỗ trợ các chuỗi song song và rất nhiều tiện ích mở rộng. Tôi sử dụng HTTPClient và Typhoeus cho bất kỳ ứng dụng không tầm thường nào.
HTTP clients là trang tốt để giúp bạn đưa ra quyết định về các khách hàng khác nhau.
các eat
đá quý là một "thay thế" cho 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
Nó sử dụng HTTPClient dưới mui xe. Nó cũng có một số tùy chọn:
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
Tôi không thể làm việc này. 'require ': không thể tải tập tin - ăn (LoadError) – Lumbee
Đây là một chương trình nhỏ tôi đã viết để tải một số tệp.
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
Tôi biết nó có thể hùng hồn hơn một chút nhưng nó phục vụ mục đích. Kiểm tra nó ra. Hôm nay, tôi đã kết hợp nó với nhau bởi vì tôi cảm thấy mệt mỏi khi truy cập vào từng URL để lấy mã cho cuốn sách không có trong bản tải xuống nguồn.
Nếu bạn biết làm thế nào để viết yêu cầu của bạn như là một lệnh curl
, có một công cụ trực tuyến có thể biến nó thành ruby (2.0+) mã: curl-to-ruby
Hiện nay, nó biết các tùy chọn sau: -d/--data
, -H/--header
, -I/--head
, -u/--user
, --url
và -X/--request
. Đó là open to contributions.
- 1. cURL tương đương trong VBA?
- 2. "Curl -F" Java tương đương
- 3. curl --định nghĩa tương đương trong thư viện CURL PHP
- 4. clojure tương đương cho ruby của gsub
- 5. Ruby tương đương với Python cho/else
- 6. wget giữ phiên tương đương curl
- 7. Python tương đương với Curl HTTP bài
- 8. Ruby file_get_contents tương đương
- 9. Pygame tương đương với Ruby?
- 10. PowerShell tương đương với HTTP POST curl để chuyển file
- 11. Có tương đương Log4J cho Ruby, Log4Ruby không?
- 12. Tương đương với Ruby cho StringReader của Java là gì?
- 13. Tương đương Groovy cho ruby tất cả và không có
- 14. Có tương đương với Ruby cho Function.prototype.bind của JavaScript không?
- 15. Tương đương RVM cho PHP?
- 16. Python tương đương với Perl/Ruby || =
- 17. Python tương đương với 'method_missing' của Ruby '
- 18. `if __name__ == '__main __'` tương đương trong Ruby
- 19. ruby / ray tương đương với javascript decodeURIComponent?
- 20. Tương đương với Array.some trong ruby / rails
- 21. Tương đương với "tiếp tục" trong Ruby
- 22. Tương đương irb của Ruby trong Perl?
- 23. Mảng # xoay tương đương trong ruby 1.8.7
- 24. Ruby tương đương với $ của PHP $
- 25. Tương đương "sys.stdout.write()" trong Ruby là gì?
- 26. PHP tương đương với biểu tượng Ruby
- 27. metric_fu tương đương với ruby 1.9.x
- 28. tương đương với chữ "có" của Ruby trong Ruby
- 29. python tương đương tương đương
- 30. Tương đương Passport.js cho Python?
Thành thật mà nói, nếu tôi thấy rằng thư viện sử dụng open-uri nội bộ, tôi không sử dụng thư viện đó. Đó là một thư viện thiếu sót sâu được xây dựng trên đầu trang của một trình phân tích cú pháp URI thiếu sót. Nó là tốt cho việc sử dụng trong IRB và đó là nó. –
@Sporkmonger: Vâng, đó là những gì chúng tôi có - bạn đề xuất gì, raw Net :: HTTP? – apostlion
Sử dụng Net :: HTTP hoặc Patron hoặc Curb hoặc bất kỳ thư viện nào khác được đề cập trong các câu trả lời khác. Làm thế nào câu trả lời này đã được bình chọn lên hoặc chấp nhận là ngoài tôi. –