Wygląda na to, że oba te klejnoty wykonują bardzo podobne zadania. Czy ktoś może podać przykłady, gdzie jeden klejnot byłby bardziej użyteczny od drugiego? Nie mam konkretnego kodu, do którego się odnawiam, bardziej zastanawiam się nad ogólnymi przypadkami użycia dla każdego klejnotu. Wiem, że to krótkie pytanie, wypełnię puste pola na życzenie. Dzięki.Jaka jest różnica między klejnotami Ruby "open-uri" i "Net: HTTP"?
Odpowiedz
Powodem, dla którego wyglądają, że wykonują podobne zadania, jest OpenURI to opakowanie dla Net :: HTTP, Net :: HTTPS i Net :: FTP.
Zwykle, chyba że uważasz, że potrzebujesz interfejsu niższego poziomu, korzystanie z OpenURI jest lepsze, ponieważ możesz uzyskać mniej kodu. Za pomocą OpenURI można otworzyć URL/URI i potraktować go jako plik.
Patrz: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html i http://ruby-doc.org/stdlib-1.9.3//libdoc/net/http/rdoc/Net.html
Dzięki Alex. Przepraszam, co to jest "opakowanie"? –
Owijarka jest po prostu biblioteką, która używa jednej lub więcej innych bibliotek do stworzenia ładniejszego interfejsu wyższego poziomu. W tym konkretnym przypadku OpenURI używa bibliotek Net, aby odsłonić bardziej znany interfejs, tj. Odczyt z pliku. –
Właśnie się dowiedziałem, że open
robi śledzić przekierowania, a Net::HTTP
nie, która jest istotna różnica.
Na przykład open('http://www.stackoverflow.com') { |content| puts content.read }
wyświetli prawidłowy kod HTML po wykonaniu przekierowania, a Net::HTTP.get(URI('http://www.stackoverflow.com'))
wyświetli komunikat przekierowania i kod statusu 302.
- 1. Jaka jest różnica między $ http i $ q?
- 2. Jaka jest różnica między C# i .NET?
- 3. Jaka jest różnica między Ruby i Ruby w Rails?
- 4. Jaka jest różnica między `.NET Core` i` .NET Core App`?
- 5. Różnica między sieci/http i net/http/fcgi w Golang
- 6. Jaka jest różnica między NetFx45WebLink i NetFx45RedistLink
- 7. Jaka jest różnica między? : i ||
- 8. Jaka jest różnica między $ i $$?
- 9. Jaka jest różnica między MIME, typem mediów internetowych i HTTP?
- 10. Jaka jest różnica między http i https w programowaniu
- 11. Jaka jest różnica między http: // *: 80 a http: // +: 80
- 12. Jaka jest różnica między metodami i atrybutami w Ruby?
- 13. Jaka jest różnica między DateTime i Time w Ruby?
- 14. Jaka jest różnica między testami i specyfikacją?
- 15. Jaka jest różnica między certyfikatami X509Certificate2 i X509Certyfikat w .NET?
- 16. Jaka jest różnica między C#, .NET i CLI?
- 17. Jaka jest różnica między KeyValuePair i Hashtable w .NET?
- 18. Jaka jest różnica między EnumerateFiles i EnumerateFileSystemEntries w .NET 4?
- 19. Jaka jest różnica między metodą ruby send a ruby public_send?
- 20. Jaka jest różnica między RyuJIT i Roslyn?
- 21. Różnica między http i www
- 22. Ruby Proxy Authentication GET/POST z OpenURI lub netto/http
- 23. Jaka jest różnica między getSupportFragmentManager() i getChildFragmentManager()?
- 24. Jaka jest różnica między mechanizmami wyszukiwania i elastycznymi prowadnicami?
- 25. Jaka jest różnica między Subtotal i BaseSubtotal?
- 26. Jaka jest różnica między DetachedCriteria i ICriteria
- 27. Jaka jest różnica między & # x00A0; i ?
- 28. Jaka jest różnica między lex i yacc
- 29. jaka jest różnica między dijit i dojo
- 30. Jaka jest różnica między Control.Select() i Control.Focus()?
Jeśli 'open-uri' pasuje do swojej nazwy, prawdopodobnie oznacza, że może obsługiwać inne schematy niż' http'. – fge