Dường như cả hai đá quý này thực hiện các tác vụ rất giống nhau. Bất cứ ai có thể đưa ra ví dụ về nơi một viên ngọc sẽ hữu ích hơn đá quý kia? Tôi không có mã cụ thể mà tôi đang đề cập đến, tôi tự hỏi hơn về các trường hợp sử dụng chung cho mỗi viên ngọc. Tôi biết đây là một câu hỏi ngắn, tôi sẽ điền vào chỗ trống theo yêu cầu. Cảm ơn.Sự khác biệt giữa đá quý 'open-uri' và 'Net: HTTP' của Ruby là gì?
Trả lời
Lý do khiến họ trông giống như họ thực hiện các tác vụ tương tự là OpenURI là trình bao bọc cho Net :: HTTP, Net :: HTTPS và Net :: FTP.
Thông thường, trừ khi bạn cảm thấy mình cần giao diện cấp thấp hơn, việc sử dụng OpenURI tốt hơn khi bạn có thể nhận được ít mã hơn. Sử dụng OpenURI bạn có thể mở một URL/URI và coi nó là một tập tin.
Xem: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html và http://ruby-doc.org/stdlib-1.9.3//libdoc/net/http/rdoc/Net.html
Cảm ơn Alex. Xin lỗi, 'wrapper' là gì? –
Trình bao bọc chỉ đơn giản là thư viện sử dụng một hoặc nhiều thư viện khác để tạo giao diện cấp cao hơn, đẹp hơn. Trong trường hợp cụ thể này, OpenURI sử dụng các thư viện Net để hiển thị một giao diện quen thuộc hơn, tức là giao diện đọc từ một tệp. –
Tôi chỉ phát hiện ra rằng open
làm theo chuyển hướng, trong khi Net::HTTP
không, đó là một sự khác biệt quan trọng.
Ví dụ: open('http://www.stackoverflow.com') { |content| puts content.read }
sẽ hiển thị HTML thích hợp sau khi theo dõi chuyển hướng, trong khi Net::HTTP.get(URI('http://www.stackoverflow.com'))
sẽ hiển thị thông báo chuyển hướng và mã trạng thái 302.
- 1. sự khác biệt giữa 'json" đá quý và 'json_pure' đá quý là gì?
- 2. Sự khác nhau giữa đá quý và plugin là gì?
- 3. Sự khác biệt giữa thời gian chờ và thời gian chờ mở là gì?
- 4. Rails 3: Sự khác nhau giữa Động cơ và Đá quý là gì?
- 5. Sự khác biệt giữa net/http và net/http/fcgi ở Golang
- 6. Sự khác biệt giữa đá quý và yêu cầu (yêu cầu mở-uri)
- 7. Sự khác nhau giữa GEM_HOME và GEM_PATH là gì?
- 8. Sự khác nhau giữa HTTP 1.0 và 1.1 là gì?
- 9. sự khác biệt giữa http và www
- 10. "Tiêu đề HTTP thô" là gì? Sự khác biệt giữa "tiêu đề HTTP" và "tiêu đề HTTP thô" là gì?
- 11. Sự khác biệt giữa ASP.NET và C# là gì?
- 12. Sự khác biệt chính giữa Sinatra và Ramaze là gì?
- 13. sự khác biệt giữa/là gì nó/và/\ Ait \ Z/
- 14. Sự khác biệt giữa cách đặt và viết của Ruby là gì?
- 15. Sự khác biệt giữa các phương pháp sao chép và sao chép của Ruby là gì?
- 16. Sự khác nhau giữa C#, .NET và CLI là gì?
- 17. Sự khác biệt giữa http: // *: 80 và http: // +: 80
- 18. Sự khác biệt giữa Ruby và Ruby on Rails là gì?
- 19. Sự khác biệt của Ruby giữa gửi và instance_eval?
- 20. Sự khác biệt giữa ri và rdoc
- 21. của Ruby cài đặt đá quý lỗi
- 22. Sự khác biệt betweet Netduino và .NET Gadgeteer là gì?
- 23. Sự khác biệt giữa. và #
- 24. Sự khác biệt giữa tùy chọn keep_alive và persistent cho yêu cầu HTTP là gì?
- 25. Sự khác biệt giữa MIME, loại phương tiện Internet và HTTP là gì?
- 26. Sự khác biệt giữa dealloc và viewdidunload là gì?
- 27. Sự khác biệt giữa Tên và CanonicalName là gì?
- 28. là gì sự khác biệt giữa SQL_Latin1_General_CP1_CI_AS và SQL_Latin1_General_CP1_CI_AI
- 29. Sự khác biệt giữa đúc và co giật là gì?
- 30. Sự khác biệt giữa GetHostEntry và GetHostByName là gì?
Nếu 'open-uri' khớp với tên của nó, nó có thể có nghĩa là nó có thể xử lý các lược đồ khác với' http'. – fge