[英]What is the difference between Ruby's 'open-uri' and 'Net:HTTP' gems?
看起來這兩個寶石都執行非常相似的任務。 任何人都可以舉例說明一個寶石比另一寶石更有用嗎? 我沒有具體的代碼,我更想知道每個gem的一般用例。 我知道這是一個簡短的問題,我會根據要求填寫空白。 謝謝。
他們看起來像執行類似任務的原因是OpenURI是Net :: HTTP,Net :: HTTPS和Net :: FTP的包裝器。
通常,除非您覺得需要較低級別的界面,否則使用OpenURI會更好,因為您可以使用更少的代碼。 使用OpenURI,您可以打開URL / URI並將其視為文件。
見: http : //www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html和http://ruby-doc.org/stdlib-1.9.3//libdoc /net/http/rdoc/Net.html
我剛剛發現open
確實遵循重定向,而Net::HTTP
則沒有,這是一個重要的區別。
例如, open('http://www.stackoverflow.com') { |content| puts content.read }
open('http://www.stackoverflow.com') { |content| puts content.read }
將在重定向后顯示正確的HTML,而Net::HTTP.get(URI('http://www.stackoverflow.com'))
將顯示重定向消息和302狀態代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.