Jeśli witryna zwraca błąd "Usługa niedostępna 503", wówczas open-uri zgłasza wyjątek. Na przykład:Jak mogę obsługiwać błędy 503 przy otwartej uri?
require 'open-uri'
open('http://www.google.co.uk/sorry/?continue=http://www.google.co.uk/search%3Fq%3Dhello%26oq%3Dhello%26ie%3DUTF-8')
# OpenURI::HTTPError: 503 Service Unavailable
# ...
Jeśli jednak przejdziesz do niego w przeglądarce, wyświetli się strona z CAPTCHA, a nie błąd.
Jak mogę się upewnić, że open-uri nie rzuca tego jako wyjątku, ale faktycznie obsługuje odpowiedź i dostarcza mi zawartości strony?
Dziękujemy! Przeczytałem twoją odpowiedź na to pytanie, zanim je zredagowałeś, czytałem o wyjątkach i nie powinny one być używane dla zwykłych warunków. Czy byłoby lepiej użyć net/http zamiast open-uri, ponieważ oznacza to, że nie muszę go używać? –