class Gem::Net::HTTPRequest

此类是 Gem::Net::HTTP 请求类的基类。此类不应直接使用;而应使用其子类,如下所示。

创建请求

可以使用 Gem::URI 或字符串主机名创建请求对象。

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

以及任何子类。

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

新实例适合用作 Gem::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"]}

请参阅

您可以添加头或覆盖默认头

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

此类(因此其子类)还(间接)包含模块 Gem::Net::HTTPHeader,它提供了对其 用于设置头的方法的访问。

请求子类

HTTP 请求的子类

WebDAV 请求的子类

公共类方法

new(path, initheader = nil) 单击以切换源代码

path 创建一个 HTTP 请求对象。

initheader 是要使用的默认头。 Gem::Net::HTTP 添加 Accept-Encoding 以启用响应正文的压缩,除非在 initheader 中提供了 Accept-Encoding 或 Range。

调用父类方法
# File rubygems/vendor/net-http/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