我一直在嘗試修改這個方法,從重定向和返回的URL的內容,而不是返回新的有效的URL。紅寶石 - 驗證和更新網址
讀到Net :: HTTP對象後,我仍然不確定get_response方法的工作原理。這是什麼下載頁面?有沒有另一種方法可以調用,而不是下載它呢?
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')
謝謝,這是工作得更快。只是試圖將其用於原始方法。 'case'在這種情況下會如何工作? – 2010-06-24 07:20:05
這與您的原始代碼相同。 'res'是一個'Net :: HTTPResponse'對象,就像代碼中的'response'一樣。 – user85509 2010-06-24 07:31:13
雖然當我嘗試更新對象時,我得到一個'NoMethodError'。 '驗證':未定義的方法'主機'爲#<字符串:0x100311360>(NoMethodError)' – 2010-06-24 07:48:13