класс URI::HTTP
Синтаксис HTTP URI определен в RFC1738 разделе 3.3.
Обратите внимание, что библиотека Ruby URI позволяет использовать HTTP URL, содержащие имена пользователей и пароли. Это не является допустимым согласно RFC, но раньше поддерживалось в Internet Explorer 5 и 6, до обновления безопасности MS04-004. Смотрите <URL:support.microsoft.com/kb/834489>.
Константы
Публичные методы класса
# File lib/uri/http.rb, line 59 def self.build(args) tmp = Util.make_components_hash(self, args) super(tmp) end
Описание
Создает новый объект URI::HTTP из компонентов с проверкой синтаксиса.
Принимаемые компоненты — userinfo, host, port, path, query и fragment.
Компоненты должны быть предоставлены либо в виде массива, либо в виде хэша с ключами, образованными из имён компонентов с префиксом двоеточия.
Если используется массив, компоненты должны передаваться в порядке [userinfo, host, port, path, query, fragment].
Пример:
newuri = URI::HTTP.build(host: 'www.example.com', path: '/foo/bar') newuri = URI::HTTP.build([nil, "www.example.com", nil, "/path", "query", 'fragment'])
В настоящее время, если передаются компоненты userinfo, этот метод генерирует недопустимые HTTP URI согласно RFC 1738.
Публичные методы экземпляра
# File lib/uri/http.rb, line 101 def request_uri return unless @path url = @query ? "#@path?#@query" : @path.dup url.start_with?(?/.freeze) ? url : ?/ + url end
#
# == Description
#
# Create a new URI::HTTP object from generic URI components as per
# RFC 2396. No HTTP-specific syntax checking (as per RFC 1738) is
# performed.
#
# Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,
# +opaque+, +query+ and +fragment+, in that order.
#
# Example:
#
# uri = URI::HTTP.new("http", nil, "www.example.com", nil, nil,
# "/path", nil, "query", "fragment")
#
#
# See also URI::Generic.new
#
def initialize(*arg)
super(*arg)
end
# # == Описание # # Возвращает полный путь для запроса HTTP, как требуется методом Net::HTTP::Get. # # Если URI содержит параметр запроса, полный путь — URI#path + '?' + URI#query. # В противном случае путь просто URI#path. # # Пример: # # newuri = ::build(path: '/foo/bar', query: 'test=true') # newuri.request_uri # => “/foo/bar?test=true” #
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.