Spec-Zone.ru › Ruby 3.4
  1. URI::
  2. HTTP

класс URI::HTTP

Родительский класс:
URI::Generic
Подключённые модули:
OpenURI::OpenRead

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

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

Константы

COMPONENT

Array доступных компонентов для URI::HTTP.

DEFAULT_PORT

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

Общедоступные методы класса

build (args) Показать исходный код
# 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.

Компоненты следует передавать либо в виде Array, либо в виде Hash с ключами, образованными добавлением двоеточия перед именами компонентов.

Если используется Array, компоненты необходимо передавать в порядке [userinfo, host, port, path, query, fragment].

Пример:

uri = URI::HTTP.build(host: 'www.example.com', path: '/foo/bar')

uri = URI::HTTP.build([nil, "www.example.com", nil, "/path",
  "query", 'fragment'])

В настоящее время, если передать компоненты userinfo, этот метод создаёт недопустимые согласно RFC 1738 URI HTTP.

Вызывает метод суперкласса URI::Generic::build

Общедоступные методы экземпляра

authority () Показать исходный код
# File lib/uri/http.rb, line 97
def authority
  if port == default_port
    host
  else
    "#{host}:#{port}"
  end
end

Описание

Возвращает компонент authority URI HTTP, определённый в www.rfc-editor.org/rfc/rfc3986#section-3.2.

Пример:

URI::HTTP.build(host: 'www.example.com', path: '/foo/bar').authority #=> "www.example.com"
URI::HTTP.build(host: 'www.example.com', port: 8000, path: '/foo/bar').authority #=> "www.example.com:8000"
URI::HTTP.build(host: 'www.example.com', port: 80, path: '/foo/bar').authority #=> "www.example.com"
origin () Показать исходный код
# File lib/uri/http.rb, line 119
def origin
  "#{scheme}://#{authority}"
end

Описание

Возвращает источник URI HTTP, определённый в www.rfc-editor.org/rfc/rfc6454.

Пример:

URI::HTTP.build(host: 'www.example.com', path: '/foo/bar').origin #=> "http://www.example.com"
URI::HTTP.build(host: 'www.example.com', port: 8000, path: '/foo/bar').origin #=> "http://www.example.com:8000"
URI::HTTP.build(host: 'www.example.com', port: 80, path: '/foo/bar').origin #=> "http://www.example.com"
URI::HTTPS.build(host: 'www.example.com', path: '/foo/bar').origin #=> "https://www.example.com"
request_uri () Показать исходный код
# File lib/uri/http.rb, line 77
def request_uri
  return unless @path

  url = @query ? "#@path?#@query" : @path.dup
  url.start_with?(?/.freeze) ? url : ?/ + url
end

Описание

Возвращает полный путь для запроса HTTP, как того требует Net::HTTP::Get.

Если URI содержит запрос, полный путь состоит из URI#path + ‘?’ + URI#query. В противном случае путь совпадает с URI#path.

Пример:

uri = URI::HTTP.build(path: '/foo/bar', query: 'test=true')
uri.request_uri #  => "/foo/bar?test=true"

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

Spec-Zone.ru

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