Spec-Zone.ru › Ruby 2.3

класс URI::HTTP

Родитель:
URI::Generic
Включенные модули:
OpenURI::OpenRead

Синтаксис HTTP URI определён в RFC1738 разделе 3.3.

Обратите внимание, что библиотека Ruby URI позволяет использовать HTTP URL с именами пользователей и паролями. Это не соответствует RFC, но раньше поддерживалось в Internet Explorer 5 и 6, до обновления безопасности MS04-004. См. <URL:support.microsoft.com/kb/834489>.

Константы

COMPONENT

Массив доступных компонентов для URI::HTTP

DEFAULT_PORT

Порт по умолчанию 80 для URI::HTTP

Публичные методы класса

build(args) Показать исходный код
# File lib/uri/http.rb, line 61
def self.build(args)
  tmp = Util::make_components_hash(self, args)
  return 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.

Вызывает метод родительского класса URI::Generic.build

Публичные методы экземпляра

request_uri() Показать исходный код
# File lib/uri/http.rb, line 98
def request_uri
  return nil unless @path
  if @path.start_with?(?/.freeze)
    @query ? "#@path?#@query" : @path.dup
  else
    @query ? "/#@path?#@query" : "/#@path"
  end
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. #

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API