J'ai essayé de modifier cette méthode en redirigeant et en renvoyant le contenu de l'URL vers une nouvelle URL valide à la place. Après avoir lu l'objet Net :: HTTP, je ne sais toujours pas exactement comment la méthode get_response fonctionne. Est-ce ce qui télécharge la page? Y a-t-il une autre méthode que je pourrais appeler qui ferait simplement un ping sur l'url au lieu de le télécharger?Ruby - Valider et mettre à jour l'URL
require 'net/http'
def validate(url)
uri = URI.parse(url)
response = Net::HTTP.get_response(uri)
case response
when Net::HTTPSuccess
return response
when Net::HTTPRedirection
return validate(response['location'])
else
return nill
end
end
puts validate('http://somesite.com/somedir/mypage.html')
Merci, cela fonctionne beaucoup plus vite. J'essaye juste de travailler avec la méthode originale. Comment le «cas» fonctionnerait-il dans cette situation? –
C'est la même chose que votre code original. 'res' est un objet' Net :: HTTPResponse', tout comme le 'response' dans votre code. – user85509
Je reçois un 'NoMethodError' quand j'essaye de mettre à jour l'objet. 'validate ': méthode non définie' host' pour # (NoMethodError) ' –