Es scheint, als ob diese beiden Edelsteine sehr ähnliche Aufgaben ausführen. Kann jemand Beispiele geben, wo ein Edelstein nützlicher wäre als der andere? Ich habe keinen spezifischen Code, auf den ich mich beziehe, ich frage mich eher über allgemeine Anwendungsfälle für jedes Juwel. Ich weiß, das ist eine kurze Frage, ich werde die Lücken auf Anfrage ausfüllen. Vielen Dank.Was ist der Unterschied zwischen den Open-Uri- und Net: HTTP-Edelsteinen von Ruby?
Antwort
Der Grund, warum sie aussehen, als ob sie ähnliche Aufgaben ausführen, ist OpenURI ist ein Wrapper für Net :: HTTP, Net :: HTTPS und Net :: FTP.
Normalerweise, wenn Sie das Gefühl haben, dass Sie eine niedrigere Schnittstelle benötigen, ist die Verwendung von OpenURI besser, da Sie mit weniger Code auskommen. Mit OpenURI können Sie eine URL/URI öffnen und als Datei behandeln.
See: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html und http://ruby-doc.org/stdlib-1.9.3//libdoc/net/http/rdoc/Net.html
Danke Alex. Entschuldigung, was ist ein "Wrapper"? –
Ein Wrapper ist einfach eine Bibliothek, die eine oder mehrere andere Bibliotheken verwendet, um ein netteres Interface auf höherer Ebene zu erstellen. In diesem speziellen Fall verwendet OpenURI die Netzbibliotheken, um eine vertrautere Schnittstelle verfügbar zu machen, d. H. Das Lesen von einer Datei. –
Ich habe gerade herausgefunden, dass open
Umleitungen folgt, während Net::HTTP
nicht tut, was ein wichtiger Unterschied.
Zum Beispiel zeigt open('http://www.stackoverflow.com') { |content| puts content.read }
den korrekten HTML-Code nach der Umleitung an, während Net::HTTP.get(URI('http://www.stackoverflow.com'))
die Umleitungsnachricht und den 302-Statuscode anzeigt.
- 1. Ruby: Was ist der Unterschied zwischen den Vergleichen: "||" und "oder"
- 2. Was ist der Unterschied zwischen Ruby und Ruby on Rails?
- 3. Was ist der Unterschied zwischen ruby send und ruby public_send?
- 4. Was ist der Unterschied zwischen% Q und% {} in Ruby?
- 5. Was ist der Unterschied zwischen STDIN und $ stdin in Ruby?
- 6. Was ist der Unterschied zwischen KeyValuePair und Hashtable in .NET?
- 7. Was ist der Unterschied zwischen Rack und Rails Metal (Ruby)?
- 8. Was ist der Unterschied zwischen Einschließen und Erweitern in Ruby?
- 9. Was ist der Unterschied zwischen Methoden und Attributen in Ruby?
- 10. Was ist der Unterschied zwischen Methoden und Nachrichten in Ruby?
- 11. Was ist der Unterschied zwischen URI.escape und URI.encode in Ruby?
- 12. Was ist der Unterschied zwischen Ruby Gems und Brew-Formeln?
- 13. Was ist der Unterschied zwischen C# und .NET?
- 14. Was ist der Unterschied zwischen .NET-Komponenten und COM-Komponenten
- 15. Was ist der Unterschied zwischen C#, .NET und CLI?
- 16. Was ist der Unterschied zwischen `==` und `ist`?
- 17. Was ist der Unterschied zwischen Difftime und '-'?
- 18. Was ist der Unterschied zwischen `&` und `ref`?
- 19. Was ist der Unterschied zwischen den 3 ASP.NET-Webprojektvorlagen?
- 20. Was ist der Unterschied zwischen den internen Funktionen von Java JVM und .NET CLR?
- 21. Was ist der Unterschied zwischen den NSMage und UIImage?
- 22. Was ist der Unterschied zwischen:.! und: r !?
- 23. Was ist der Unterschied zwischen Monad.Reader und den (->) Monaden?
- 24. Was ist der Unterschied zwischen $ (...) und `...`
- 25. Was ist der Unterschied zwischen den Funktionen VarIsEmpty und VarIsEmptyParam?
- 26. Was ist der Unterschied zwischen den KeyCode- und KeyData-Eigenschaften in den .NET WinForms-Schlüsselereignisargumentobjekten?
- 27. Was ist der Unterschied zwischen $ und $$?
- 28. Was ist der Unterschied zwischen/* ... */und/** ... */
- 29. Was ist der Unterschied zwischen den Methoden Html.Partial und Html.Action?
- 30. Was ist der Unterschied zwischen den Parametern Default und [Optional]?
Wenn 'open-uri' zu seinem Namen passt, bedeutet es wahrscheinlich, dass es andere Schemata als' http' verarbeiten kann. – fge