Sto provando a utilizzare Ruby per caricare una pagina Web su HTTP e controllare quale sia il suo codice di stato. Il mio codice è simile al seguente:Durante il caricamento della pagina web: "metodo non definito` request_uri 'per # "
require "net/http"
@r = Net::HTTP.get_response(URI.parse(myURL))
return @r.code
Tuttavia, per alcuni URL (per lo più quelli che puntano al roba strana come i contatori web che non daranno una risposta adeguata) Sto diventando un'eccezione undefined method request_uri for #
. Ho rintracciato di nuovo alla linea 380 di http.rb (sto correndo Ruby 1.8), in cui si 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
Sono abbastanza perso da ciò che provoca questa eccezione. Mi aspetterei un URI::InvalidURIError
, ma non questo.
Questa non è una risposta, quindi la postò come commento. Ho riscontrato questo errore durante la conversione di un'app Rails 3.0 in un'app Rails 3.1, qui: session [: return_to] = request.request_uri – Docunext