Je suis aller chercher des données météo d'un doc xml en ligne en utilisant Nokogiri, et je voudrais mettre en place un délai d'attente pour la récupération gracieuse au cas où la source ne peut pas être atteint ...read_timeout à Nokogiri?
Mes recherches Google montrent plusieurs méthodes possibles pour open-uri et Net :: HTTP, mais aucune spécifique à Nokogiri. Mes tentatives d'utiliser ces méthodes ne parviennent pas (pas trop surprenant):
begin
currentloc = ("http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=" + @destination.weatherloc)
currentloc.read_timeout = 10 #
doc = Nokogiri::XML(open(currentloc))
rescue Timeout::Error
return "Current weather for this location not available: request timed out."
end
retourne "NoMethodError", et:
begin
currentloc = ("http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=" + @destination.weatherloc)
doc = Nokogiri::XML(open(currentloc), :read_timeout => 10)
rescue Timeout::Error
return "Current weather for this location not available: request timed out."
end
retours "TypeError ne peut pas convertir Hash en chaîne"
Est-ce que Nokogiri soutient ce type de méthode (et si oui ... comment?), Ou devrais-je envisager une autre solution?
Merci.
Cela semble fonctionner (au moins il ne se brise pas), mais lorsque je tente de le tester en débranchant eth0, je suis obtenir un SocketError. Je suppose que j'ai besoin d'un test conditionnel pour ça aussi. L'ajout d'une instruction de secours supplémentaire (rescue SocketError) échoue cependant. Merci –
Pouvez-vous poster votre code afin que je puisse voir par moi-même plus en détail? – Vincent