簡體   English   中英

Ruby的'open-uri'和'Net:HTTP'寶石有什么區別?

[英]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.htmlhttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM