Я пытаюсь использовать Ruby для загрузки веб-страницы по HTTP и проверки ее кода состояния.Мой код выглядит следующим образом:
require "net/http"
@r = Net::HTTP.get_response(URI.parse(myURL))
return @r.code
Однако для некоторых URL-адресов (в основном те, которые указывают на странные вещи, такие как веб-счетчики, которые не дают правильного ответа), я получаю исключение undefined method request_uri for #
.Я проследил это до строки 380 http.rb (я использую Ruby 1.8), где написано:
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
Я совершенно не понимаю, что вызывает это исключение.Я ожидал бы URI::InvalidURIError
, но не это.