Je veux saisir le contenu d'une page Web comme celui-ci:Comment savoir quand la fonction OpenURI open() de Ruby donne une erreur de 404 pages non trouvées?
open("http://www.ruby-lang.org/")
Cependant, parfois, cette page n'existe pas:
open("http://www.ruby-lang.org/blabla.html")
La commande open
lance une exception. Je sais que je peux attraper cette exception, mais cela semble inapproprié dans mon cas. Je sais qu'il y aura régulièrement de mauvaises URL car les visiteurs et les utilisateurs saisissent des URL à récupérer.
Je n'aime pas l'idée d'utiliser des exceptions pour cette situation normale. Y at-il un moyen que je peux savoir que la page n'a pas été trouvée sans qu'une exception soit levée?
Le seul résultat régulier de 'open' est la ressource en cours d'ouverture. Tout le reste est exceptionnel et devrait être géré par des exceptions. – Amadan
Pas dans un ordre particulier, mais [HTTPClient] (https://github.com/nahi/httpclient), [RESTClient] (https://github.com/archiloque/rest-client), [Typhoeus] (https: //github.com/typhoeus/typhoeus), [Curb] (https://github.com/taf2/curb) ou [HTTParty] (https://github.com/jnunemaker/httparty) tout serait plus facile que Net :: HTTP. Mechanize peut récupérer une page, mais ce n'est pas sa raison d'être. Toutes les gemmes précédentes seraient mieux adaptées aux E/S HTTP normales. OpenURI est un excellent outil et je l'utilise souvent, mais ce n'est pas la chose la plus flexible, donc les exceptions sont votre seul choix. –