Estoy intentando usar Ruby para cargar una página web a través de HTTP y verificar cuál es su código de estado. Mi código es el siguiente:Al cargar la página web: "método indefinido` request_uri 'para # "
require "net/http"
@r = Net::HTTP.get_response(URI.parse(myURL))
return @r.code
Sin embargo, para algunas direcciones URL (en su mayoría los que apuntan a cosas raras como contadores web que no den una respuesta adecuada) Estoy consiguiendo una excepción undefined method request_uri for #
. He rastreado de nuevo a la línea 380 de http.rb (Estoy corriendo Rubí 1.8), donde dice:
def HTTP.get_response(uri_or_host, path = nil, port = nil, &block)
if path
host = uri_or_host
new(host, port || HTTP.default_port).start {|http|
return http.request_get(path, &block)
}
else
uri = uri_or_host
new(uri.host, uri.port).start {|http|
return http.request_get(uri.request_uri, &block) <--- LINE 380
}
end
end
estoy bastante perdido en cuanto a qué causa esta excepción. Esperaría un URI::InvalidURIError
, pero esto no.
Esto no es una respuesta, así que lo publico como un comentario. Llegué a este error al convertir una aplicación de Rails 3.0 a una aplicación de Rails 3.1, aquí: session [: return_to] = request.request_uri – Docunext