Spec-Zone.ru › Ruby 3.3

класс Net::HTTPRequest

Родитель:
Net::HTTPGenericRequest

Этот класс является базовым классом для классов запросов Net::HTTP. Не следует использовать этот класс напрямую; вместо этого следует использовать его подклассы, перечисленные ниже.

Создание запроса

Объект запроса может быть создан с помощью URI или имени хоста в виде строки:

require 'net/http'
uri = URI('https://jsonplaceholder.typicode.com/')
req = Net::HTTP::Get.new(uri)          # => #<Net::HTTP::Get GET>
req = Net::HTTP::Get.new(uri.hostname) # => #<Net::HTTP::Get GET>

А также с помощью любого из подклассов:

req = Net::HTTP::Head.new(uri) # => #<Net::HTTP::Head HEAD>
req = Net::HTTP::Post.new(uri) # => #<Net::HTTP::Post POST>
req = Net::HTTP::Put.new(uri)  # => #<Net::HTTP::Put PUT>
# ...

Новый экземпляр подходит для использования в качестве аргумента к Net::HTTP#request.

Заголовки запроса

Новый объект запроса по умолчанию имеет следующие заголовки:

req.to_hash
# =>
{"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],
"accept"=>["*/*"],
"user-agent"=>["Ruby"],
"host"=>["jsonplaceholder.typicode.com"]}

См.:

  • Заголовок запроса Accept-Encoding и Сжатие и разархивирование.

  • Заголовок запроса Accept.

  • Заголовок запроса User-Agent.

  • Заголовок запроса Host.

Вы можете добавить заголовки или переопределить значения по умолчанию:

#   res = Net::HTTP::Get.new(uri, {'foo' => '0', 'bar' => '1'})

Этот класс (и, следовательно, его подклассы) также включает (косвенно) модуль Net::HTTPHeader, который предоставляет доступ к его методам для установки заголовков.

Подклассы запросов

Подклассы для HTTP запросов:

  • Net::HTTP::Get

  • Net::HTTP::Head

  • Net::HTTP::Post

  • Net::HTTP::Put

  • Net::HTTP::Delete

  • Net::HTTP::Options

  • Net::HTTP::Trace

  • Net::HTTP::Patch

Подклассы для запросов WebDAV:

  • Net::HTTP::Propfind

  • Net::HTTP::Proppatch

  • Net::HTTP::Mkcol

  • Net::HTTP::Copy

  • Net::HTTP::Move

  • Net::HTTP::Lock

  • Net::HTTP::Unlock

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

new(path, initheader = nil) Показать исходный код
# File lib/net/http/request.rb, line 82
def initialize(path, initheader = nil)
  super self.class::METHOD,
        self.class::REQUEST_HAS_BODY,
        self.class::RESPONSE_HAS_BODY,
        path, initheader
end

Создаёт объект запроса HTTP для path.

initheader — это заголовки по умолчанию. Net::HTTP добавляет Accept-Encoding для включения сжатия тела ответа, если Accept-Encoding или Range не указаны в initheader.

Вызывает метод родительского класса BasicObject::new

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

Spec-Zone.ru

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