rbs 3.3.2 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -5
- data/.github/workflows/ruby.yml +7 -8
- data/.github/workflows/typecheck.yml +37 -0
- data/CHANGELOG.md +65 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +11 -11
- data/README.md +1 -0
- data/Rakefile +2 -2
- data/Steepfile +2 -2
- data/core/array.rbs +19 -49
- data/core/basic_object.rbs +2 -2
- data/core/comparable.rbs +17 -8
- data/core/complex.rbs +82 -43
- data/core/data.rbs +2 -4
- data/core/dir.rbs +635 -295
- data/core/enumerable.rbs +11 -18
- data/core/enumerator.rbs +37 -31
- data/core/errors.rbs +4 -0
- data/core/false_class.rbs +34 -15
- data/core/fiber.rbs +23 -0
- data/core/file.rbs +329 -120
- data/core/float.rbs +17 -32
- data/core/gc.rbs +17 -11
- data/core/hash.rbs +22 -44
- data/core/integer.rbs +82 -113
- data/core/io/buffer.rbs +90 -47
- data/core/io.rbs +54 -121
- data/core/kernel.rbs +442 -489
- data/core/match_data.rbs +55 -56
- data/core/module.rbs +45 -1
- data/core/nil_class.rbs +98 -35
- data/core/numeric.rbs +22 -32
- data/core/object_space/weak_key_map.rbs +102 -0
- data/core/process.rbs +1242 -655
- data/core/ractor.rbs +139 -120
- data/core/range.rbs +100 -4
- data/core/rational.rbs +0 -4
- data/core/rbs/unnamed/argf.rbs +16 -8
- data/core/rbs/unnamed/env_class.rbs +0 -24
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +1149 -598
- data/core/ruby_vm.rbs +126 -12
- data/core/rubygems/platform.rbs +9 -0
- data/core/rubygems/rubygems.rbs +1 -1
- data/core/rubygems/version.rbs +5 -1
- data/core/set.rbs +20 -22
- data/core/signal.rbs +4 -4
- data/core/string.rbs +283 -230
- data/core/string_io.rbs +2 -14
- data/core/struct.rbs +404 -24
- data/core/symbol.rbs +1 -19
- data/core/thread.rbs +29 -12
- data/core/time.rbs +227 -104
- data/core/trace_point.rbs +2 -5
- data/core/true_class.rbs +54 -21
- data/core/warning.rbs +14 -11
- data/docs/data_and_struct.md +29 -0
- data/docs/gem.md +58 -0
- data/docs/syntax.md +3 -5
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/lexer.c +643 -559
- data/ext/rbs_extension/lexer.re +5 -1
- data/ext/rbs_extension/parser.c +12 -3
- data/ext/rbs_extension/unescape.c +7 -47
- data/lib/rbs/cli/diff.rb +4 -1
- data/lib/rbs/cli/validate.rb +280 -0
- data/lib/rbs/cli.rb +2 -194
- data/lib/rbs/collection/config.rb +5 -6
- data/lib/rbs/collection/sources/git.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/diff.rb +7 -4
- data/lib/rbs/errors.rb +11 -0
- data/lib/rbs/test/errors.rb +10 -2
- data/lib/rbs/test/guaranteed.rb +2 -3
- data/lib/rbs/test/type_check.rb +15 -10
- data/lib/rbs/test.rb +3 -3
- data/lib/rbs/types.rb +29 -0
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +136 -0
- data/lib/rbs/unit_test/type_assertions.rb +341 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/version.rb +1 -1
- data/sig/cli/validate.rbs +43 -0
- data/sig/diff.rbs +3 -1
- data/sig/errors.rbs +8 -0
- data/sig/rbs.rbs +1 -1
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/types.rbs +6 -1
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +28 -0
- data/sig/unit_test/type_assertions.rbs +194 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/stdlib/base64/0/base64.rbs +307 -45
- data/stdlib/bigdecimal/0/big_decimal.rbs +35 -15
- data/stdlib/coverage/0/coverage.rbs +2 -2
- data/stdlib/csv/0/csv.rbs +25 -55
- data/stdlib/date/0/date.rbs +1 -43
- data/stdlib/date/0/date_time.rbs +1 -13
- data/stdlib/delegate/0/delegator.rbs +186 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +98 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
- data/stdlib/erb/0/erb.rbs +2 -2
- data/stdlib/fileutils/0/fileutils.rbs +0 -19
- data/stdlib/io-console/0/io-console.rbs +12 -1
- data/stdlib/ipaddr/0/ipaddr.rbs +2 -1
- data/stdlib/json/0/json.rbs +320 -81
- data/stdlib/logger/0/logger.rbs +9 -5
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +6 -6
- data/stdlib/monitor/0/monitor.rbs +78 -0
- data/stdlib/net-http/0/net-http.rbs +1880 -543
- data/stdlib/objspace/0/objspace.rbs +19 -13
- data/stdlib/openssl/0/openssl.rbs +508 -127
- data/stdlib/optparse/0/optparse.rbs +25 -11
- data/stdlib/pathname/0/pathname.rbs +1 -1
- data/stdlib/pp/0/pp.rbs +2 -5
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -2
- data/stdlib/pstore/0/pstore.rbs +2 -4
- data/stdlib/rdoc/0/comment.rbs +1 -2
- data/stdlib/resolv/0/resolv.rbs +4 -2
- data/stdlib/socket/0/socket.rbs +2 -2
- data/stdlib/socket/0/unix_socket.rbs +2 -2
- data/stdlib/strscan/0/string_scanner.rbs +3 -2
- data/stdlib/tempfile/0/tempfile.rbs +1 -1
- data/stdlib/uri/0/common.rbs +245 -123
- metadata +24 -4
- data/lib/rbs/test/spy.rb +0 -6
|
@@ -8,7 +8,7 @@ module Net
|
|
|
8
8
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
9
9
|
# Class Net::HTTP provides a rich library that implements the client in a
|
|
10
10
|
# client-server model that uses the HTTP request-response protocol. For
|
|
11
|
-
# information about HTTP, see
|
|
11
|
+
# information about HTTP, see:
|
|
12
12
|
#
|
|
13
13
|
# * [Hypertext Transfer
|
|
14
14
|
# Protocol](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol).
|
|
@@ -17,63 +17,6 @@ module Net
|
|
|
17
17
|
# cal_overview).
|
|
18
18
|
#
|
|
19
19
|
#
|
|
20
|
-
# Note: If you are performing only a few GET requests, consider using
|
|
21
|
-
# [OpenURI](rdoc-ref:OpenURI); otherwise, read on.
|
|
22
|
-
#
|
|
23
|
-
# ## Synopsis
|
|
24
|
-
#
|
|
25
|
-
# If you are already familiar with HTTP, this synopsis may be helpful.
|
|
26
|
-
#
|
|
27
|
-
# [Session](rdoc-ref:Net::HTTP@Sessions) with multiple requests for [HTTP
|
|
28
|
-
# methods](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_met
|
|
29
|
-
# hods):
|
|
30
|
-
#
|
|
31
|
-
# Net::HTTP.start(hostname) do |http|
|
|
32
|
-
# # Session started automatically before block execution.
|
|
33
|
-
# http.get(path_or_uri, headers = {})
|
|
34
|
-
# http.head(path_or_uri, headers = {})
|
|
35
|
-
# http.post(path_or_uri, data, headers = {}) # Can also have a block.
|
|
36
|
-
# http.put(path_or_uri, data, headers = {})
|
|
37
|
-
# http.delete(path_or_uri, headers = {Depth: 'Infinity'})
|
|
38
|
-
# http.options(path_or_uri, headers = {})
|
|
39
|
-
# http.trace(path_or_uri, headers = {})
|
|
40
|
-
# http.patch(path_or_uri, data, headers = {}) # Can also have a block.
|
|
41
|
-
# # Session finished automatically at block exit.
|
|
42
|
-
# end
|
|
43
|
-
#
|
|
44
|
-
# [Session](rdoc-ref:Net::HTTP@Sessions) with multiple requests for [WebDAV
|
|
45
|
-
# methods](https://en.wikipedia.org/wiki/WebDAV#Implementation):
|
|
46
|
-
#
|
|
47
|
-
# Net::HTTP.start(hostname) do |http|
|
|
48
|
-
# # Session started automatically before block execution.
|
|
49
|
-
# http.copy(path_or_uri, headers = {})
|
|
50
|
-
# http.lock(path_or_uri, body, headers = {})
|
|
51
|
-
# http.mkcol(path_or_uri, body = nil, headers = {})
|
|
52
|
-
# http.move(path_or_uri, headers = {})
|
|
53
|
-
# http.propfind(path_or_uri, body = nil, headers = {'Depth' => '0'})
|
|
54
|
-
# http.proppatch(path_or_uri, body, headers = {})
|
|
55
|
-
# http.unlock(path_or_uri, body, headers = {})
|
|
56
|
-
# # Session finished automatically at block exit.
|
|
57
|
-
# end
|
|
58
|
-
#
|
|
59
|
-
# Each of the following methods automatically starts and finishes a
|
|
60
|
-
# [session](rdoc-ref:Net::HTTP@Sessions) that sends a single request:
|
|
61
|
-
#
|
|
62
|
-
# # Return string response body.
|
|
63
|
-
# Net::HTTP.get(hostname, path, port = 80)
|
|
64
|
-
# Net::HTTP.get(uri, headers = {}, port = 80)
|
|
65
|
-
#
|
|
66
|
-
# # Write string response body to $stdout.
|
|
67
|
-
# Net::HTTP.get_print(hostname, path_or_uri, port = 80)
|
|
68
|
-
# Net::HTTP.get_print(uri, headers = {}, port = 80)
|
|
69
|
-
#
|
|
70
|
-
# # Return response as Net::HTTPResponse object.
|
|
71
|
-
# Net::HTTP.get_response(hostname, path_or_uri, port = 80)
|
|
72
|
-
# Net::HTTP.get_response(uri, headers = {}, port = 80)
|
|
73
|
-
#
|
|
74
|
-
# Net::HTTP.post(uri, data, headers = {})
|
|
75
|
-
# Net::HTTP.post_form(uri, params)
|
|
76
|
-
#
|
|
77
20
|
# ## About the Examples
|
|
78
21
|
#
|
|
79
22
|
# Examples here assume that `net/http` has been required (which also requires
|
|
@@ -89,9 +32,10 @@ module Net
|
|
|
89
32
|
#
|
|
90
33
|
# Some examples also assume these variables:
|
|
91
34
|
#
|
|
92
|
-
# uri = URI('https://jsonplaceholder.typicode.com')
|
|
35
|
+
# uri = URI('https://jsonplaceholder.typicode.com/')
|
|
93
36
|
# uri.freeze # Examples may not modify.
|
|
94
37
|
# hostname = uri.hostname # => "jsonplaceholder.typicode.com"
|
|
38
|
+
# path = uri.path # => "/"
|
|
95
39
|
# port = uri.port # => 443
|
|
96
40
|
#
|
|
97
41
|
# So that example requests may be written as:
|
|
@@ -109,6 +53,64 @@ module Net
|
|
|
109
53
|
# _uri = uri.dup
|
|
110
54
|
# _uri.path = '/todos/1'
|
|
111
55
|
#
|
|
56
|
+
# ## Strategies
|
|
57
|
+
#
|
|
58
|
+
# * If you will make only a few GET requests, consider using
|
|
59
|
+
# [OpenURI](rdoc-ref:OpenURI).
|
|
60
|
+
# * If you will make only a few requests of all kinds, consider using the
|
|
61
|
+
# various singleton convenience methods in this class. Each of the following
|
|
62
|
+
# methods automatically starts and finishes a
|
|
63
|
+
# [session](rdoc-ref:Net::HTTP@Sessions) that sends a single request:
|
|
64
|
+
#
|
|
65
|
+
# # Return string response body.
|
|
66
|
+
# Net::HTTP.get(hostname, path)
|
|
67
|
+
# Net::HTTP.get(uri)
|
|
68
|
+
#
|
|
69
|
+
# # Write string response body to $stdout.
|
|
70
|
+
# Net::HTTP.get_print(hostname, path)
|
|
71
|
+
# Net::HTTP.get_print(uri)
|
|
72
|
+
#
|
|
73
|
+
# # Return response as Net::HTTPResponse object.
|
|
74
|
+
# Net::HTTP.get_response(hostname, path)
|
|
75
|
+
# Net::HTTP.get_response(uri)
|
|
76
|
+
# data = '{"title": "foo", "body": "bar", "userId": 1}'
|
|
77
|
+
# Net::HTTP.post(uri, data)
|
|
78
|
+
# params = {title: 'foo', body: 'bar', userId: 1}
|
|
79
|
+
# Net::HTTP.post_form(uri, params)
|
|
80
|
+
#
|
|
81
|
+
# * If performance is important, consider using sessions, which lower request
|
|
82
|
+
# overhead. This [session](rdoc-ref:Net::HTTP@Sessions) has multiple
|
|
83
|
+
# requests for [HTTP
|
|
84
|
+
# methods](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request
|
|
85
|
+
# _methods) and [WebDAV
|
|
86
|
+
# methods](https://en.wikipedia.org/wiki/WebDAV#Implementation):
|
|
87
|
+
#
|
|
88
|
+
# Net::HTTP.start(hostname) do |http|
|
|
89
|
+
# # Session started automatically before block execution.
|
|
90
|
+
# http.get(path)
|
|
91
|
+
# http.head(path)
|
|
92
|
+
# body = 'Some text'
|
|
93
|
+
# http.post(path, body) # Can also have a block.
|
|
94
|
+
# http.put(path, body)
|
|
95
|
+
# http.delete(path)
|
|
96
|
+
# http.options(path)
|
|
97
|
+
# http.trace(path)
|
|
98
|
+
# http.patch(path, body) # Can also have a block.
|
|
99
|
+
# http.copy(path)
|
|
100
|
+
# http.lock(path, body)
|
|
101
|
+
# http.mkcol(path, body)
|
|
102
|
+
# http.move(path)
|
|
103
|
+
# http.propfind(path, body)
|
|
104
|
+
# http.proppatch(path, body)
|
|
105
|
+
# http.unlock(path, body)
|
|
106
|
+
# # Session finished automatically at block exit.
|
|
107
|
+
# end
|
|
108
|
+
#
|
|
109
|
+
#
|
|
110
|
+
# The methods cited above are convenience methods that, via their few arguments,
|
|
111
|
+
# allow minimal control over the requests. For greater control, consider using
|
|
112
|
+
# [request objects](rdoc-ref:Net::HTTPRequest).
|
|
113
|
+
#
|
|
112
114
|
# ## URIs
|
|
113
115
|
#
|
|
114
116
|
# On the internet, a URI ([Universal Resource
|
|
@@ -184,7 +186,7 @@ module Net
|
|
|
184
186
|
# Fields](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_field
|
|
185
187
|
# s). A host may also accept other custom fields.
|
|
186
188
|
#
|
|
187
|
-
# ## Sessions
|
|
189
|
+
# ## HTTP Sessions
|
|
188
190
|
#
|
|
189
191
|
# A *session* is a connection between a server (host) and a client that:
|
|
190
192
|
#
|
|
@@ -193,7 +195,7 @@ module Net
|
|
|
193
195
|
# * Is ended by instance method Net::HTTP#finish.
|
|
194
196
|
#
|
|
195
197
|
#
|
|
196
|
-
# See example sessions at
|
|
198
|
+
# See example sessions at [Strategies](rdoc-ref:Net::HTTP@Strategies).
|
|
197
199
|
#
|
|
198
200
|
# ### Session Using Net::HTTP.start
|
|
199
201
|
#
|
|
@@ -284,49 +286,43 @@ module Net
|
|
|
284
286
|
#
|
|
285
287
|
# ## Following Redirection
|
|
286
288
|
#
|
|
287
|
-
# Each
|
|
288
|
-
#
|
|
289
|
-
#
|
|
290
|
-
# 3XX response is an instance of a Net::HTTPRedirection subclass and a 200
|
|
291
|
-
# response is an instance of the Net::HTTPOK class. For details of response
|
|
292
|
-
# classes, see the section "HTTP Response Classes" below.
|
|
289
|
+
# Each returned response is an instance of a subclass of Net::HTTPResponse. See
|
|
290
|
+
# the [response class
|
|
291
|
+
# hierarchy](rdoc-ref:Net::HTTPResponse@Response+Subclasses).
|
|
293
292
|
#
|
|
294
|
-
#
|
|
293
|
+
# In particular, class Net::HTTPRedirection is the parent of all redirection
|
|
294
|
+
# classes. This allows you to craft a case statement to handle redirections
|
|
295
|
+
# properly:
|
|
295
296
|
#
|
|
296
|
-
# def fetch(
|
|
297
|
+
# def fetch(uri, limit = 10)
|
|
297
298
|
# # You should choose a better exception.
|
|
298
|
-
# raise ArgumentError, '
|
|
299
|
-
#
|
|
300
|
-
#
|
|
301
|
-
#
|
|
302
|
-
#
|
|
303
|
-
#
|
|
304
|
-
#
|
|
305
|
-
#
|
|
306
|
-
#
|
|
307
|
-
# warn "redirected to #{location}"
|
|
299
|
+
# raise ArgumentError, 'Too many HTTP redirects' if limit == 0
|
|
300
|
+
#
|
|
301
|
+
# res = Net::HTTP.get_response(URI(uri))
|
|
302
|
+
# case res
|
|
303
|
+
# when Net::HTTPSuccess # Any success class.
|
|
304
|
+
# res
|
|
305
|
+
# when Net::HTTPRedirection # Any redirection class.
|
|
306
|
+
# location = res['Location']
|
|
307
|
+
# warn "Redirected to #{location}"
|
|
308
308
|
# fetch(location, limit - 1)
|
|
309
|
-
# else
|
|
310
|
-
#
|
|
309
|
+
# else # Any other class.
|
|
310
|
+
# res.value
|
|
311
311
|
# end
|
|
312
312
|
# end
|
|
313
313
|
#
|
|
314
|
-
#
|
|
314
|
+
# fetch(uri)
|
|
315
315
|
#
|
|
316
316
|
# ## Basic Authentication
|
|
317
317
|
#
|
|
318
318
|
# Basic authentication is performed according to
|
|
319
|
-
# [RFC2617](http://www.ietf.org/rfc/rfc2617.txt)
|
|
320
|
-
#
|
|
321
|
-
# uri = URI('http://example.com/index.html?key=value')
|
|
319
|
+
# [RFC2617](http://www.ietf.org/rfc/rfc2617.txt):
|
|
322
320
|
#
|
|
323
321
|
# req = Net::HTTP::Get.new(uri)
|
|
324
|
-
# req.basic_auth
|
|
325
|
-
#
|
|
326
|
-
# res = Net::HTTP.start(uri.hostname, uri.port) {|http|
|
|
322
|
+
# req.basic_auth('user', 'pass')
|
|
323
|
+
# res = Net::HTTP.start(hostname) do |http|
|
|
327
324
|
# http.request(req)
|
|
328
|
-
#
|
|
329
|
-
# puts res.body
|
|
325
|
+
# end
|
|
330
326
|
#
|
|
331
327
|
# ## Streaming Response Bodies
|
|
332
328
|
#
|
|
@@ -334,15 +330,12 @@ module Net
|
|
|
334
330
|
# handling large files or wish to implement a progress bar you can instead
|
|
335
331
|
# stream the body directly to an IO.
|
|
336
332
|
#
|
|
337
|
-
#
|
|
338
|
-
#
|
|
339
|
-
#
|
|
340
|
-
#
|
|
341
|
-
#
|
|
342
|
-
#
|
|
343
|
-
# open 'large_file', 'w' do |io|
|
|
344
|
-
# response.read_body do |chunk|
|
|
345
|
-
# io.write chunk
|
|
333
|
+
# Net::HTTP.start(hostname) do |http|
|
|
334
|
+
# req = Net::HTTP::Get.new(uri)
|
|
335
|
+
# http.request(req) do |res|
|
|
336
|
+
# open('t.tmp', 'w') do |f|
|
|
337
|
+
# res.read_body do |chunk|
|
|
338
|
+
# f.write chunk
|
|
346
339
|
# end
|
|
347
340
|
# end
|
|
348
341
|
# end
|
|
@@ -350,50 +343,393 @@ module Net
|
|
|
350
343
|
#
|
|
351
344
|
# ## HTTPS
|
|
352
345
|
#
|
|
353
|
-
# HTTPS is enabled for an HTTP connection by Net::HTTP#use_ssl
|
|
354
|
-
#
|
|
355
|
-
# uri = URI('https://secure.example.com/some_path?query=string')
|
|
346
|
+
# HTTPS is enabled for an HTTP connection by Net::HTTP#use_ssl=:
|
|
356
347
|
#
|
|
357
|
-
# Net::HTTP.start(
|
|
358
|
-
#
|
|
359
|
-
#
|
|
348
|
+
# Net::HTTP.start(hostname, :use_ssl => true) do |http|
|
|
349
|
+
# req = Net::HTTP::Get.new(uri)
|
|
350
|
+
# res = http.request(req)
|
|
360
351
|
# end
|
|
361
352
|
#
|
|
362
|
-
# Or if you simply want to make a GET request, you may pass in
|
|
363
|
-
#
|
|
364
|
-
#
|
|
353
|
+
# Or if you simply want to make a GET request, you may pass in a URI object that
|
|
354
|
+
# has an HTTPS URL. Net::HTTP automatically turns on TLS verification if the URI
|
|
355
|
+
# object has a 'https' URI scheme:
|
|
365
356
|
#
|
|
366
|
-
# uri
|
|
367
|
-
# Net::HTTP.get(uri)
|
|
357
|
+
# uri # => #<URI::HTTPS https://jsonplaceholder.typicode.com/>
|
|
358
|
+
# Net::HTTP.get(uri)
|
|
359
|
+
#
|
|
360
|
+
# ## Proxy Server
|
|
361
|
+
#
|
|
362
|
+
# An HTTP object can have a [proxy
|
|
363
|
+
# server](https://en.wikipedia.org/wiki/Proxy_server).
|
|
364
|
+
#
|
|
365
|
+
# You can create an HTTP object with a proxy server using method Net::HTTP.new
|
|
366
|
+
# or method Net::HTTP.start.
|
|
367
|
+
#
|
|
368
|
+
# The proxy may be defined either by argument `p_addr` or by environment
|
|
369
|
+
# variable `'http_proxy'`.
|
|
370
|
+
#
|
|
371
|
+
# ### Proxy Using Argument `p_addr` as a String
|
|
372
|
+
#
|
|
373
|
+
# When argument `p_addr` is a string hostname, the returned `http` has the given
|
|
374
|
+
# host as its proxy:
|
|
375
|
+
#
|
|
376
|
+
# http = Net::HTTP.new(hostname, nil, 'proxy.example')
|
|
377
|
+
# http.proxy? # => true
|
|
378
|
+
# http.proxy_from_env? # => false
|
|
379
|
+
# http.proxy_address # => "proxy.example"
|
|
380
|
+
# # These use default values.
|
|
381
|
+
# http.proxy_port # => 80
|
|
382
|
+
# http.proxy_user # => nil
|
|
383
|
+
# http.proxy_pass # => nil
|
|
384
|
+
#
|
|
385
|
+
# The port, username, and password for the proxy may also be given:
|
|
386
|
+
#
|
|
387
|
+
# http = Net::HTTP.new(hostname, nil, 'proxy.example', 8000, 'pname', 'ppass')
|
|
388
|
+
# # => #<Net::HTTP jsonplaceholder.typicode.com:80 open=false>
|
|
389
|
+
# http.proxy? # => true
|
|
390
|
+
# http.proxy_from_env? # => false
|
|
391
|
+
# http.proxy_address # => "proxy.example"
|
|
392
|
+
# http.proxy_port # => 8000
|
|
393
|
+
# http.proxy_user # => "pname"
|
|
394
|
+
# http.proxy_pass # => "ppass"
|
|
395
|
+
#
|
|
396
|
+
# ### Proxy Using '`ENV['http_proxy']`'
|
|
397
|
+
#
|
|
398
|
+
# When environment variable `'http_proxy'` is set to a URI string, the returned
|
|
399
|
+
# `http` will have the server at that URI as its proxy; note that the URI string
|
|
400
|
+
# must have a protocol such as `'http'` or `'https'`:
|
|
401
|
+
#
|
|
402
|
+
# ENV['http_proxy'] = 'http://example.com'
|
|
403
|
+
# http = Net::HTTP.new(hostname)
|
|
404
|
+
# http.proxy? # => true
|
|
405
|
+
# http.proxy_from_env? # => true
|
|
406
|
+
# http.proxy_address # => "example.com"
|
|
407
|
+
# # These use default values.
|
|
408
|
+
# http.proxy_port # => 80
|
|
409
|
+
# http.proxy_user # => nil
|
|
410
|
+
# http.proxy_pass # => nil
|
|
411
|
+
#
|
|
412
|
+
# The URI string may include proxy username, password, and port number:
|
|
413
|
+
#
|
|
414
|
+
# ENV['http_proxy'] = 'http://pname:ppass@example.com:8000'
|
|
415
|
+
# http = Net::HTTP.new(hostname)
|
|
416
|
+
# http.proxy? # => true
|
|
417
|
+
# http.proxy_from_env? # => true
|
|
418
|
+
# http.proxy_address # => "example.com"
|
|
419
|
+
# http.proxy_port # => 8000
|
|
420
|
+
# http.proxy_user # => "pname"
|
|
421
|
+
# http.proxy_pass # => "ppass"
|
|
422
|
+
#
|
|
423
|
+
# ### Filtering Proxies
|
|
424
|
+
#
|
|
425
|
+
# With method Net::HTTP.new (but not Net::HTTP.start), you can use argument
|
|
426
|
+
# `p_no_proxy` to filter proxies:
|
|
427
|
+
#
|
|
428
|
+
# * Reject a certain address:
|
|
368
429
|
#
|
|
369
|
-
#
|
|
370
|
-
#
|
|
430
|
+
# http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'proxy.example')
|
|
431
|
+
# http.proxy_address # => nil
|
|
371
432
|
#
|
|
372
|
-
#
|
|
433
|
+
# * Reject certain domains or subdomains:
|
|
373
434
|
#
|
|
374
|
-
# Net::HTTP
|
|
375
|
-
#
|
|
376
|
-
# proxy address.
|
|
435
|
+
# http = Net::HTTP.new('example.com', nil, 'my.proxy.example', 8000, 'pname', 'ppass', 'proxy.example')
|
|
436
|
+
# http.proxy_address # => nil
|
|
377
437
|
#
|
|
378
|
-
#
|
|
438
|
+
# * Reject certain addresses and port combinations:
|
|
379
439
|
#
|
|
380
|
-
#
|
|
381
|
-
#
|
|
440
|
+
# http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'proxy.example:1234')
|
|
441
|
+
# http.proxy_address # => "proxy.example"
|
|
382
442
|
#
|
|
383
|
-
#
|
|
384
|
-
#
|
|
385
|
-
# }
|
|
443
|
+
# http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'proxy.example:8000')
|
|
444
|
+
# http.proxy_address # => nil
|
|
386
445
|
#
|
|
387
|
-
#
|
|
388
|
-
# require a username and password.
|
|
446
|
+
# * Reject a list of the types above delimited using a comma:
|
|
389
447
|
#
|
|
390
|
-
#
|
|
448
|
+
# http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'my.proxy,proxy.example:8000')
|
|
449
|
+
# http.proxy_address # => nil
|
|
391
450
|
#
|
|
392
|
-
# Net::HTTP
|
|
393
|
-
#
|
|
394
|
-
# Range header was sent.
|
|
451
|
+
# http = Net::HTTP.new('example.com', nil, 'my.proxy', 8000, 'pname', 'ppass', 'my.proxy,proxy.example:8000')
|
|
452
|
+
# http.proxy_address # => nil
|
|
395
453
|
#
|
|
396
|
-
#
|
|
454
|
+
#
|
|
455
|
+
# ## Compression and Decompression
|
|
456
|
+
#
|
|
457
|
+
# Net::HTTP does not compress the body of a request before sending.
|
|
458
|
+
#
|
|
459
|
+
# By default, Net::HTTP adds header `'Accept-Encoding'` to a new [request
|
|
460
|
+
# object](rdoc-ref:Net::HTTPRequest):
|
|
461
|
+
#
|
|
462
|
+
# Net::HTTP::Get.new(uri)['Accept-Encoding']
|
|
463
|
+
# # => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
|
|
464
|
+
#
|
|
465
|
+
# This requests the server to zip-encode the response body if there is one; the
|
|
466
|
+
# server is not required to do so.
|
|
467
|
+
#
|
|
468
|
+
# Net::HTTP does not automatically decompress a response body if the response
|
|
469
|
+
# has header `'Content-Range'`.
|
|
470
|
+
#
|
|
471
|
+
# Otherwise decompression (or not) depends on the value of header
|
|
472
|
+
# [Content-Encoding](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#co
|
|
473
|
+
# ntent-encoding-response-header):
|
|
474
|
+
#
|
|
475
|
+
# * `'deflate'`, `'gzip'`, or `'x-gzip'`: decompresses the body and deletes
|
|
476
|
+
# the header.
|
|
477
|
+
# * `'none'` or `'identity'`: does not decompress the body, but deletes the
|
|
478
|
+
# header.
|
|
479
|
+
# * Any other value: leaves the body and header unchanged.
|
|
480
|
+
#
|
|
481
|
+
#
|
|
482
|
+
# ## What's Here
|
|
483
|
+
#
|
|
484
|
+
# This is a categorized summary of methods and attributes.
|
|
485
|
+
#
|
|
486
|
+
# ### Net::HTTP Objects
|
|
487
|
+
#
|
|
488
|
+
# * [::new](rdoc-ref:Net::HTTP.new): Creates a new instance.
|
|
489
|
+
# * [#inspect](rdoc-ref:Net::HTTP#inspect): Returns a string representation of
|
|
490
|
+
# `self`.
|
|
491
|
+
#
|
|
492
|
+
#
|
|
493
|
+
# ### Sessions
|
|
494
|
+
#
|
|
495
|
+
# * [::start](rdoc-ref:Net::HTTP.start): Begins a new session in a new
|
|
496
|
+
# Net::HTTP object.
|
|
497
|
+
# * [#started?](rdoc-ref:Net::HTTP#started?) (aliased as
|
|
498
|
+
# [#active?](rdoc-ref:Net::HTTP#active?)): Returns whether in a session.
|
|
499
|
+
# * [#finish](rdoc-ref:Net::HTTP#finish): Ends an active session.
|
|
500
|
+
# * [#start](rdoc-ref:Net::HTTP#start): Begins a new session in an existing
|
|
501
|
+
# Net::HTTP object (`self`).
|
|
502
|
+
#
|
|
503
|
+
#
|
|
504
|
+
# ### Connections
|
|
505
|
+
#
|
|
506
|
+
# * [:continue_timeout](rdoc-ref:Net::HTTP#continue_timeout): Returns the
|
|
507
|
+
# continue timeout.
|
|
508
|
+
# * [#continue_timeout=](rdoc-ref:Net::HTTP#continue_timeout=): Sets the
|
|
509
|
+
# continue timeout seconds.
|
|
510
|
+
# * [:keep_alive_timeout](rdoc-ref:Net::HTTP#keep_alive_timeout): Returns the
|
|
511
|
+
# keep-alive timeout.
|
|
512
|
+
# * [:keep_alive_timeout=](rdoc-ref:Net::HTTP#keep_alive_timeout=): Sets the
|
|
513
|
+
# keep-alive timeout.
|
|
514
|
+
# * [:max_retries](rdoc-ref:Net::HTTP#max_retries): Returns the maximum
|
|
515
|
+
# retries.
|
|
516
|
+
# * [#max_retries=](rdoc-ref:Net::HTTP#max_retries=): Sets the maximum
|
|
517
|
+
# retries.
|
|
518
|
+
# * [:open_timeout](rdoc-ref:Net::HTTP#open_timeout): Returns the open
|
|
519
|
+
# timeout.
|
|
520
|
+
# * [:open_timeout=](rdoc-ref:Net::HTTP#open_timeout=): Sets the open timeout.
|
|
521
|
+
# * [:read_timeout](rdoc-ref:Net::HTTP#read_timeout): Returns the open
|
|
522
|
+
# timeout.
|
|
523
|
+
# * [:read_timeout=](rdoc-ref:Net::HTTP#read_timeout=): Sets the read timeout.
|
|
524
|
+
# * [:ssl_timeout](rdoc-ref:Net::HTTP#ssl_timeout): Returns the ssl timeout.
|
|
525
|
+
# * [:ssl_timeout=](rdoc-ref:Net::HTTP#ssl_timeout=): Sets the ssl timeout.
|
|
526
|
+
# * [:write_timeout](rdoc-ref:Net::HTTP#write_timeout): Returns the write
|
|
527
|
+
# timeout.
|
|
528
|
+
# * [write_timeout=](rdoc-ref:Net::HTTP#write_timeout=): Sets the write
|
|
529
|
+
# timeout.
|
|
530
|
+
#
|
|
531
|
+
#
|
|
532
|
+
# ### Requests
|
|
533
|
+
#
|
|
534
|
+
# * [::get](rdoc-ref:Net::HTTP.get): Sends a GET request and returns the
|
|
535
|
+
# string response body.
|
|
536
|
+
# * [::get_print](rdoc-ref:Net::HTTP.get_print): Sends a GET request and write
|
|
537
|
+
# the string response body to $stdout.
|
|
538
|
+
# * [::get_response](rdoc-ref:Net::HTTP.get_response): Sends a GET request and
|
|
539
|
+
# returns a response object.
|
|
540
|
+
# * [::post_form](rdoc-ref:Net::HTTP.post_form): Sends a POST request with
|
|
541
|
+
# form data and returns a response object.
|
|
542
|
+
# * [::post](rdoc-ref:Net::HTTP.post): Sends a POST request with data and
|
|
543
|
+
# returns a response object.
|
|
544
|
+
# * [#copy](rdoc-ref:Net::HTTP#copy): Sends a COPY request and returns a
|
|
545
|
+
# response object.
|
|
546
|
+
# * [#delete](rdoc-ref:Net::HTTP#delete): Sends a DELETE request and returns a
|
|
547
|
+
# response object.
|
|
548
|
+
# * [#get](rdoc-ref:Net::HTTP#get): Sends a GET request and returns a response
|
|
549
|
+
# object.
|
|
550
|
+
# * [#head](rdoc-ref:Net::HTTP#head): Sends a HEAD request and returns a
|
|
551
|
+
# response object.
|
|
552
|
+
# * [#lock](rdoc-ref:Net::HTTP#lock): Sends a LOCK request and returns a
|
|
553
|
+
# response object.
|
|
554
|
+
# * [#mkcol](rdoc-ref:Net::HTTP#mkcol): Sends a MKCOL request and returns a
|
|
555
|
+
# response object.
|
|
556
|
+
# * [#move](rdoc-ref:Net::HTTP#move): Sends a MOVE request and returns a
|
|
557
|
+
# response object.
|
|
558
|
+
# * [#options](rdoc-ref:Net::HTTP#options): Sends a OPTIONS request and
|
|
559
|
+
# returns a response object.
|
|
560
|
+
# * [#patch](rdoc-ref:Net::HTTP#patch): Sends a PATCH request and returns a
|
|
561
|
+
# response object.
|
|
562
|
+
# * [#post](rdoc-ref:Net::HTTP#post): Sends a POST request and returns a
|
|
563
|
+
# response object.
|
|
564
|
+
# * [#propfind](rdoc-ref:Net::HTTP#propfind): Sends a PROPFIND request and
|
|
565
|
+
# returns a response object.
|
|
566
|
+
# * [#proppatch](rdoc-ref:Net::HTTP#proppatch): Sends a PROPPATCH request and
|
|
567
|
+
# returns a response object.
|
|
568
|
+
# * [#put](rdoc-ref:Net::HTTP#put): Sends a PUT request and returns a response
|
|
569
|
+
# object.
|
|
570
|
+
# * [#request](rdoc-ref:Net::HTTP#request): Sends a request and returns a
|
|
571
|
+
# response object.
|
|
572
|
+
# * [#request_get](rdoc-ref:Net::HTTP#request_get) (aliased as
|
|
573
|
+
# [#get2](rdoc-ref:Net::HTTP#get2)): Sends a GET request and forms a
|
|
574
|
+
# response object; if a block given, calls the block with the object,
|
|
575
|
+
# otherwise returns the object.
|
|
576
|
+
# * [#request_head](rdoc-ref:Net::HTTP#request_head) (aliased as
|
|
577
|
+
# [#head2](rdoc-ref:Net::HTTP#head2)): Sends a HEAD request and forms a
|
|
578
|
+
# response object; if a block given, calls the block with the object,
|
|
579
|
+
# otherwise returns the object.
|
|
580
|
+
# * [#request_post](rdoc-ref:Net::HTTP#request_post) (aliased as
|
|
581
|
+
# [#post2](rdoc-ref:Net::HTTP#post2)): Sends a POST request and forms a
|
|
582
|
+
# response object; if a block given, calls the block with the object,
|
|
583
|
+
# otherwise returns the object.
|
|
584
|
+
# * [#send_request](rdoc-ref:Net::HTTP#send_request): Sends a request and
|
|
585
|
+
# returns a response object.
|
|
586
|
+
# * [#trace](rdoc-ref:Net::HTTP#trace): Sends a TRACE request and returns a
|
|
587
|
+
# response object.
|
|
588
|
+
# * [#unlock](rdoc-ref:Net::HTTP#unlock): Sends an UNLOCK request and returns
|
|
589
|
+
# a response object.
|
|
590
|
+
#
|
|
591
|
+
#
|
|
592
|
+
# ### Responses
|
|
593
|
+
#
|
|
594
|
+
# * [:close_on_empty_response](rdoc-ref:Net::HTTP#close_on_empty_response):
|
|
595
|
+
# Returns whether to close connection on empty response.
|
|
596
|
+
# * [:close_on_empty_response=](rdoc-ref:Net::HTTP#close_on_empty_response=):
|
|
597
|
+
# Sets whether to close connection on empty response.
|
|
598
|
+
# * [:ignore_eof](rdoc-ref:Net::HTTP#ignore_eof): Returns whether to ignore
|
|
599
|
+
# end-of-file when reading a response body with `Content-Length` headers.
|
|
600
|
+
# * [:ignore_eof=](rdoc-ref:Net::HTTP#ignore_eof=): Sets whether to ignore
|
|
601
|
+
# end-of-file when reading a response body with `Content-Length` headers.
|
|
602
|
+
# * [:response_body_encoding](rdoc-ref:Net::HTTP#response_body_encoding):
|
|
603
|
+
# Returns the encoding to use for the response body.
|
|
604
|
+
# * [#response_body_encoding=](rdoc-ref:Net::HTTP#response_body_encoding=):
|
|
605
|
+
# Sets the response body encoding.
|
|
606
|
+
#
|
|
607
|
+
#
|
|
608
|
+
# ### Proxies
|
|
609
|
+
#
|
|
610
|
+
# * [:proxy_address](rdoc-ref:Net::HTTP#proxy_address): Returns the proxy
|
|
611
|
+
# address.
|
|
612
|
+
# * [:proxy_address=](rdoc-ref:Net::HTTP#proxy_address=): Sets the proxy
|
|
613
|
+
# address.
|
|
614
|
+
# * [::proxy_class?](rdoc-ref:Net::HTTP.proxy_class?): Returns whether `self`
|
|
615
|
+
# is a proxy class.
|
|
616
|
+
# * [#proxy?](rdoc-ref:Net::HTTP#proxy?): Returns whether `self` has a proxy.
|
|
617
|
+
# * [#proxy_address](rdoc-ref:Net::HTTP#proxy_address) (aliased as
|
|
618
|
+
# [#proxyaddr](rdoc-ref:Net::HTTP#proxyaddr)): Returns the proxy address.
|
|
619
|
+
# * [#proxy_from_env?](rdoc-ref:Net::HTTP#proxy_from_env?): Returns whether
|
|
620
|
+
# the proxy is taken from an environment variable.
|
|
621
|
+
# * [:proxy_from_env=](rdoc-ref:Net::HTTP#proxy_from_env=): Sets whether the
|
|
622
|
+
# proxy is to be taken from an environment variable.
|
|
623
|
+
# * [:proxy_pass](rdoc-ref:Net::HTTP#proxy_pass): Returns the proxy password.
|
|
624
|
+
# * [:proxy_pass=](rdoc-ref:Net::HTTP#proxy_pass=): Sets the proxy password.
|
|
625
|
+
# * [:proxy_port](rdoc-ref:Net::HTTP#proxy_port): Returns the proxy port.
|
|
626
|
+
# * [:proxy_port=](rdoc-ref:Net::HTTP#proxy_port=): Sets the proxy port.
|
|
627
|
+
# * [#proxy_user](rdoc-ref:Net::HTTP#proxy_user): Returns the proxy user name.
|
|
628
|
+
# * [:proxy_user=](rdoc-ref:Net::HTTP#proxy_user=): Sets the proxy user.
|
|
629
|
+
#
|
|
630
|
+
#
|
|
631
|
+
# ### Security
|
|
632
|
+
#
|
|
633
|
+
# * [:ca_file](rdoc-ref:Net::HTTP#ca_file): Returns the path to a CA
|
|
634
|
+
# certification file.
|
|
635
|
+
# * [:ca_file=](rdoc-ref:Net::HTTP#ca_file=): Sets the path to a CA
|
|
636
|
+
# certification file.
|
|
637
|
+
# * [:ca_path](rdoc-ref:Net::HTTP#ca_path): Returns the path of to CA
|
|
638
|
+
# directory containing certification files.
|
|
639
|
+
# * [:ca_path=](rdoc-ref:Net::HTTP#ca_path=): Sets the path of to CA directory
|
|
640
|
+
# containing certification files.
|
|
641
|
+
# * [:cert](rdoc-ref:Net::HTTP#cert): Returns the OpenSSL::X509::Certificate
|
|
642
|
+
# object to be used for client certification.
|
|
643
|
+
# * [:cert=](rdoc-ref:Net::HTTP#cert=): Sets the OpenSSL::X509::Certificate
|
|
644
|
+
# object to be used for client certification.
|
|
645
|
+
# * [:cert_store](rdoc-ref:Net::HTTP#cert_store): Returns the X509::Store to
|
|
646
|
+
# be used for verifying peer certificate.
|
|
647
|
+
# * [:cert_store=](rdoc-ref:Net::HTTP#cert_store=): Sets the X509::Store to be
|
|
648
|
+
# used for verifying peer certificate.
|
|
649
|
+
# * [:ciphers](rdoc-ref:Net::HTTP#ciphers): Returns the available SSL ciphers.
|
|
650
|
+
# * [:ciphers=](rdoc-ref:Net::HTTP#ciphers=): Sets the available SSL ciphers.
|
|
651
|
+
# * [:extra_chain_cert](rdoc-ref:Net::HTTP#extra_chain_cert): Returns the
|
|
652
|
+
# extra X509 certificates to be added to the certificate chain.
|
|
653
|
+
# * [:extra_chain_cert=](rdoc-ref:Net::HTTP#extra_chain_cert=): Sets the extra
|
|
654
|
+
# X509 certificates to be added to the certificate chain.
|
|
655
|
+
# * [:key](rdoc-ref:Net::HTTP#key): Returns the OpenSSL::PKey::RSA or
|
|
656
|
+
# OpenSSL::PKey::DSA object.
|
|
657
|
+
# * [:key=](rdoc-ref:Net::HTTP#key=): Sets the OpenSSL::PKey::RSA or
|
|
658
|
+
# OpenSSL::PKey::DSA object.
|
|
659
|
+
# * [:max_version](rdoc-ref:Net::HTTP#max_version): Returns the maximum SSL
|
|
660
|
+
# version.
|
|
661
|
+
# * [:max_version=](rdoc-ref:Net::HTTP#max_version=): Sets the maximum SSL
|
|
662
|
+
# version.
|
|
663
|
+
# * [:min_version](rdoc-ref:Net::HTTP#min_version): Returns the minimum SSL
|
|
664
|
+
# version.
|
|
665
|
+
# * [:min_version=](rdoc-ref:Net::HTTP#min_version=): Sets the minimum SSL
|
|
666
|
+
# version.
|
|
667
|
+
# * [#peer_cert](rdoc-ref:Net::HTTP#peer_cert): Returns the X509 certificate
|
|
668
|
+
# chain for the session's socket peer.
|
|
669
|
+
# * [:ssl_version](rdoc-ref:Net::HTTP#ssl_version): Returns the SSL version.
|
|
670
|
+
# * [:ssl_version=](rdoc-ref:Net::HTTP#ssl_version=): Sets the SSL version.
|
|
671
|
+
# * [#use_ssl=](rdoc-ref:Net::HTTP#use_ssl=): Sets whether a new session is to
|
|
672
|
+
# use Transport Layer Security.
|
|
673
|
+
# * [#use_ssl?](rdoc-ref:Net::HTTP#use_ssl?): Returns whether `self` uses SSL.
|
|
674
|
+
# * [:verify_callback](rdoc-ref:Net::HTTP#verify_callback): Returns the
|
|
675
|
+
# callback for the server certification verification.
|
|
676
|
+
# * [:verify_callback=](rdoc-ref:Net::HTTP#verify_callback=): Sets the
|
|
677
|
+
# callback for the server certification verification.
|
|
678
|
+
# * [:verify_depth](rdoc-ref:Net::HTTP#verify_depth): Returns the maximum
|
|
679
|
+
# depth for the certificate chain verification.
|
|
680
|
+
# * [:verify_depth=](rdoc-ref:Net::HTTP#verify_depth=): Sets the maximum depth
|
|
681
|
+
# for the certificate chain verification.
|
|
682
|
+
# * [:verify_hostname](rdoc-ref:Net::HTTP#verify_hostname): Returns the flags
|
|
683
|
+
# for server the certification verification at the beginning of the SSL/TLS
|
|
684
|
+
# session.
|
|
685
|
+
# * [:verify_hostname=](rdoc-ref:Net::HTTP#verify_hostname=): Sets he flags
|
|
686
|
+
# for server the certification verification at the beginning of the SSL/TLS
|
|
687
|
+
# session.
|
|
688
|
+
# * [:verify_mode](rdoc-ref:Net::HTTP#verify_mode): Returns the flags for
|
|
689
|
+
# server the certification verification at the beginning of the SSL/TLS
|
|
690
|
+
# session.
|
|
691
|
+
# * [:verify_mode=](rdoc-ref:Net::HTTP#verify_mode=): Sets the flags for
|
|
692
|
+
# server the certification verification at the beginning of the SSL/TLS
|
|
693
|
+
# session.
|
|
694
|
+
#
|
|
695
|
+
#
|
|
696
|
+
# ### Addresses and Ports
|
|
697
|
+
#
|
|
698
|
+
# * [:address](rdoc-ref:Net::HTTP#address): Returns the string host name or
|
|
699
|
+
# host IP.
|
|
700
|
+
# * [::default_port](rdoc-ref:Net::HTTP.default_port): Returns integer 80, the
|
|
701
|
+
# default port to use for HTTP requests.
|
|
702
|
+
# * [::http_default_port](rdoc-ref:Net::HTTP.http_default_port): Returns
|
|
703
|
+
# integer 80, the default port to use for HTTP requests.
|
|
704
|
+
# * [::https_default_port](rdoc-ref:Net::HTTP.https_default_port): Returns
|
|
705
|
+
# integer 443, the default port to use for HTTPS requests.
|
|
706
|
+
# * [#ipaddr](rdoc-ref:Net::HTTP#ipaddr): Returns the IP address for the
|
|
707
|
+
# connection.
|
|
708
|
+
# * [#ipaddr=](rdoc-ref:Net::HTTP#ipaddr=): Sets the IP address for the
|
|
709
|
+
# connection.
|
|
710
|
+
# * [:local_host](rdoc-ref:Net::HTTP#local_host): Returns the string local
|
|
711
|
+
# host used to establish the connection.
|
|
712
|
+
# * [:local_host=](rdoc-ref:Net::HTTP#local_host=): Sets the string local host
|
|
713
|
+
# used to establish the connection.
|
|
714
|
+
# * [:local_port](rdoc-ref:Net::HTTP#local_port): Returns the integer local
|
|
715
|
+
# port used to establish the connection.
|
|
716
|
+
# * [:local_port=](rdoc-ref:Net::HTTP#local_port=): Sets the integer local
|
|
717
|
+
# port used to establish the connection.
|
|
718
|
+
# * [:port](rdoc-ref:Net::HTTP#port): Returns the integer port number.
|
|
719
|
+
#
|
|
720
|
+
#
|
|
721
|
+
# ### HTTP Version
|
|
722
|
+
#
|
|
723
|
+
# * [::version_1_2?](rdoc-ref:Net::HTTP.version_1_2?) (aliased as
|
|
724
|
+
# [::is_version_1_2?](rdoc-ref:Net::HTTP.is_version_1_2?) and
|
|
725
|
+
# [::version_1_2](rdoc-ref:Net::HTTP.version_1_2)): Returns true; retained
|
|
726
|
+
# for compatibility.
|
|
727
|
+
#
|
|
728
|
+
#
|
|
729
|
+
# ### Debugging
|
|
730
|
+
#
|
|
731
|
+
# * [#set_debug_output](rdoc-ref:Net::HTTP#set_debug_output): Sets the output
|
|
732
|
+
# stream for debugging.
|
|
397
733
|
#
|
|
398
734
|
class HTTP < Protocol
|
|
399
735
|
# :stopdoc:
|
|
@@ -549,7 +885,7 @@ module Net
|
|
|
549
885
|
# rdoc-file=lib/net/http.rb
|
|
550
886
|
# - default_port()
|
|
551
887
|
# -->
|
|
552
|
-
# Returns
|
|
888
|
+
# Returns integer `80`, the default port to use for HTTP requests:
|
|
553
889
|
#
|
|
554
890
|
# Net::HTTP.default_port # => 80
|
|
555
891
|
#
|
|
@@ -582,15 +918,12 @@ module Net
|
|
|
582
918
|
# -->
|
|
583
919
|
# Creates a new Net::HTTP object, `http`, via Net::HTTP.new:
|
|
584
920
|
#
|
|
585
|
-
#
|
|
586
|
-
#
|
|
587
|
-
#
|
|
921
|
+
# * For arguments `address` and `port`, see Net::HTTP.new.
|
|
922
|
+
# * For proxy-defining arguments `p_addr` through `p_pass`, see [Proxy
|
|
923
|
+
# Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
588
924
|
# * For argument `opts`, see below.
|
|
589
925
|
#
|
|
590
926
|
#
|
|
591
|
-
# Note: If `port` is `nil` and `opts[:use_ssl]` is a truthy value, the value
|
|
592
|
-
# passed to `new` is Net::HTTP.https_default_port, not `port`.
|
|
593
|
-
#
|
|
594
927
|
# With no block given:
|
|
595
928
|
#
|
|
596
929
|
# * Calls `http.start` with no block (see #start), which opens a TCP
|
|
@@ -664,6 +997,10 @@ module Net
|
|
|
664
997
|
# * #verify_mode
|
|
665
998
|
# * #write_timeout
|
|
666
999
|
#
|
|
1000
|
+
#
|
|
1001
|
+
# Note: If `port` is `nil` and `opts[:use_ssl]` is a truthy value, the value
|
|
1002
|
+
# passed to `new` is Net::HTTP.https_default_port, not `port`.
|
|
1003
|
+
#
|
|
667
1004
|
def self.start: (String address, ?Integer? port, ?String | :ENV | nil p_addr, ?Integer? p_port, ?String? p_user, ?String? p_pass, ?Hash[Symbol, untyped]? opt) -> Net::HTTP
|
|
668
1005
|
| [T] (String address, ?Integer? port, ?String | :ENV | nil p_addr, ?Integer? p_port, ?String? p_user, ?String? p_pass, ?Hash[Symbol, untyped]? opt) { (Net::HTTP) -> T } -> T
|
|
669
1006
|
|
|
@@ -676,11 +1013,36 @@ module Net
|
|
|
676
1013
|
|
|
677
1014
|
# <!--
|
|
678
1015
|
# rdoc-file=lib/net/http.rb
|
|
679
|
-
# - new(address, port = nil)
|
|
1016
|
+
# - new(address, port = nil, p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil, p_no_proxy = nil)
|
|
680
1017
|
# -->
|
|
681
|
-
#
|
|
682
|
-
#
|
|
683
|
-
#
|
|
1018
|
+
# Returns a new Net::HTTP object `http` (but does not open a TCP connection or
|
|
1019
|
+
# HTTP session).
|
|
1020
|
+
#
|
|
1021
|
+
# With only string argument `address` given (and `ENV['http_proxy']` undefined
|
|
1022
|
+
# or `nil`), the returned `http`:
|
|
1023
|
+
#
|
|
1024
|
+
# * Has the given address.
|
|
1025
|
+
# * Has the default port number, Net::HTTP.default_port (80).
|
|
1026
|
+
# * Has no proxy.
|
|
1027
|
+
#
|
|
1028
|
+
#
|
|
1029
|
+
# Example:
|
|
1030
|
+
#
|
|
1031
|
+
# http = Net::HTTP.new(hostname)
|
|
1032
|
+
# # => #<Net::HTTP jsonplaceholder.typicode.com:80 open=false>
|
|
1033
|
+
# http.address # => "jsonplaceholder.typicode.com"
|
|
1034
|
+
# http.port # => 80
|
|
1035
|
+
# http.proxy? # => false
|
|
1036
|
+
#
|
|
1037
|
+
# With integer argument `port` also given, the returned `http` has the given
|
|
1038
|
+
# port:
|
|
1039
|
+
#
|
|
1040
|
+
# http = Net::HTTP.new(hostname, 8000)
|
|
1041
|
+
# # => #<Net::HTTP jsonplaceholder.typicode.com:8000 open=false>
|
|
1042
|
+
# http.port # => 8000
|
|
1043
|
+
#
|
|
1044
|
+
# For proxy-defining arguments `p_addr` through `p_no_proxy`, see [Proxy
|
|
1045
|
+
# Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
684
1046
|
#
|
|
685
1047
|
def self.new: (String address, ?Integer? port, ?String | :ENV | nil p_addr, ?Integer? p_port, ?String? p_user, ?String? p_pass, ?untyped? p_no_proxy) -> Net::HTTP
|
|
686
1048
|
|
|
@@ -751,40 +1113,52 @@ module Net
|
|
|
751
1113
|
def set_debug_output: (IO output) -> void
|
|
752
1114
|
|
|
753
1115
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
754
|
-
#
|
|
1116
|
+
# Returns the string host name or host IP given as argument `address` in ::new.
|
|
755
1117
|
#
|
|
756
1118
|
attr_reader address: String
|
|
757
1119
|
|
|
758
1120
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
759
|
-
#
|
|
1121
|
+
# Returns the integer port number given as argument `port` in ::new.
|
|
760
1122
|
#
|
|
761
1123
|
attr_reader port: Integer
|
|
762
1124
|
|
|
763
1125
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
764
|
-
#
|
|
1126
|
+
# Sets or returns the string local host used to establish the connection;
|
|
1127
|
+
# initially `nil`.
|
|
765
1128
|
#
|
|
766
1129
|
attr_accessor local_host: String
|
|
767
1130
|
|
|
768
1131
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
769
|
-
#
|
|
1132
|
+
# Sets or returns the integer local port used to establish the connection;
|
|
1133
|
+
# initially `nil`.
|
|
770
1134
|
#
|
|
771
1135
|
attr_accessor local_port: Integer
|
|
772
1136
|
|
|
1137
|
+
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1138
|
+
# Sets whether to determine the proxy from environment variable
|
|
1139
|
+
# '`ENV['http_proxy']`'; see [Proxy Using
|
|
1140
|
+
# ENV['http_proxy']](rdoc-ref:Net::HTTP@Proxy+Using+-27ENV-5B-27http_proxy-27-5D
|
|
1141
|
+
# -27).
|
|
1142
|
+
#
|
|
773
1143
|
attr_writer proxy_from_env: untyped
|
|
774
1144
|
|
|
775
1145
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1146
|
+
# Sets the proxy address; see [Proxy Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
776
1147
|
#
|
|
777
1148
|
attr_accessor proxy_address: String?
|
|
778
1149
|
|
|
779
1150
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1151
|
+
# Sets the proxy port; see [Proxy Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
780
1152
|
#
|
|
781
1153
|
attr_accessor proxy_port: Integer?
|
|
782
1154
|
|
|
783
1155
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1156
|
+
# Sets the proxy user; see [Proxy Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
784
1157
|
#
|
|
785
1158
|
attr_accessor proxy_user: String?
|
|
786
1159
|
|
|
787
1160
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1161
|
+
# Sets the proxy password; see [Proxy Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
788
1162
|
#
|
|
789
1163
|
attr_accessor proxy_pass: String?
|
|
790
1164
|
|
|
@@ -825,18 +1199,15 @@ module Net
|
|
|
825
1199
|
attr_accessor ipaddr: String?
|
|
826
1200
|
|
|
827
1201
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
828
|
-
#
|
|
829
|
-
#
|
|
830
|
-
#
|
|
831
|
-
# default value is 60 seconds.
|
|
1202
|
+
# Sets or returns the numeric (Integer or Float) number of seconds to wait for a
|
|
1203
|
+
# connection to open; initially 60. If the connection is not made in the given
|
|
1204
|
+
# interval, an exception is raised.
|
|
832
1205
|
#
|
|
833
1206
|
attr_accessor open_timeout: Float | Integer
|
|
834
1207
|
|
|
835
1208
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
836
|
-
#
|
|
837
|
-
#
|
|
838
|
-
# object cannot read data in this many seconds, it raises a Net::ReadTimeout
|
|
839
|
-
# exception. The default value is 60 seconds.
|
|
1209
|
+
# Returns the numeric (Integer or Float) number of seconds to wait for one block
|
|
1210
|
+
# to be read (via one read(2) call); see #read_timeout=.
|
|
840
1211
|
# ----
|
|
841
1212
|
# <!--
|
|
842
1213
|
# rdoc-file=lib/net/http.rb
|
|
@@ -856,11 +1227,8 @@ module Net
|
|
|
856
1227
|
attr_accessor read_timeout: Float | Integer
|
|
857
1228
|
|
|
858
1229
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
859
|
-
#
|
|
860
|
-
#
|
|
861
|
-
# object cannot write data in this many seconds, it raises a Net::WriteTimeout
|
|
862
|
-
# exception. The default value is 60 seconds. Net::WriteTimeout is not raised on
|
|
863
|
-
# Windows.
|
|
1230
|
+
# Returns the numeric (Integer or Float) number of seconds to wait for one block
|
|
1231
|
+
# to be written (via one write(2) call); see #write_timeout=.
|
|
864
1232
|
# ----
|
|
865
1233
|
# <!--
|
|
866
1234
|
# rdoc-file=lib/net/http.rb
|
|
@@ -869,10 +1237,28 @@ module Net
|
|
|
869
1237
|
# Sets the write timeout, in seconds, for `self` to integer `sec`; the initial
|
|
870
1238
|
# value is 60.
|
|
871
1239
|
#
|
|
872
|
-
# Argument `sec` must be a non-negative numeric value
|
|
1240
|
+
# Argument `sec` must be a non-negative numeric value:
|
|
1241
|
+
#
|
|
1242
|
+
# _uri = uri.dup
|
|
1243
|
+
# _uri.path = '/posts'
|
|
1244
|
+
# body = 'bar' * 200000
|
|
1245
|
+
# data = <<EOF
|
|
1246
|
+
# {"title": "foo", "body": "#{body}", "userId": "1"}
|
|
1247
|
+
# EOF
|
|
1248
|
+
# headers = {'content-type': 'application/json'}
|
|
1249
|
+
# http = Net::HTTP.new(hostname)
|
|
1250
|
+
# http.write_timeout # => 60
|
|
1251
|
+
# http.post(_uri.path, data, headers)
|
|
1252
|
+
# # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1253
|
+
# http.write_timeout = 0
|
|
1254
|
+
# http.post(_uri.path, data, headers) # Raises Net::WriteTimeout.
|
|
873
1255
|
#
|
|
874
1256
|
attr_accessor write_timeout: Float | Integer
|
|
875
1257
|
|
|
1258
|
+
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1259
|
+
# Returns the maximum number of times to retry an idempotent request; see
|
|
1260
|
+
# #max_retries=.
|
|
1261
|
+
# ----
|
|
876
1262
|
# <!--
|
|
877
1263
|
# rdoc-file=lib/net/http.rb
|
|
878
1264
|
# - max_retries=(retries)
|
|
@@ -890,22 +1276,23 @@ module Net
|
|
|
890
1276
|
attr_accessor max_retries: Integer
|
|
891
1277
|
|
|
892
1278
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
893
|
-
#
|
|
894
|
-
# a response in this many seconds it sends the request body. The default value
|
|
895
|
-
# is `nil`.
|
|
1279
|
+
# Returns the continue timeout value; see continue_timeout=.
|
|
896
1280
|
# ----
|
|
897
1281
|
# <!--
|
|
898
1282
|
# rdoc-file=lib/net/http.rb
|
|
899
1283
|
# - continue_timeout=(sec)
|
|
900
1284
|
# -->
|
|
901
|
-
#
|
|
1285
|
+
# Sets the continue timeout value, which is the number of seconds to wait for an
|
|
1286
|
+
# expected 100 Continue response. If the HTTP object does not receive a response
|
|
1287
|
+
# in this many seconds it sends the request body.
|
|
902
1288
|
#
|
|
903
1289
|
attr_accessor continue_timeout: Float | Integer | nil
|
|
904
1290
|
|
|
905
1291
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
906
|
-
#
|
|
907
|
-
#
|
|
908
|
-
# the
|
|
1292
|
+
# Sets or returns the numeric (Integer or Float) number of seconds to keep the
|
|
1293
|
+
# connection open after a request is sent; initially 2. If a new request is made
|
|
1294
|
+
# during the given interval, the still-open connection is used; otherwise the
|
|
1295
|
+
# connection will have been closed and a new connection is opened.
|
|
909
1296
|
#
|
|
910
1297
|
attr_accessor keep_alive_timeout: Float | Integer
|
|
911
1298
|
|
|
@@ -913,7 +1300,19 @@ module Net
|
|
|
913
1300
|
# rdoc-file=lib/net/http.rb
|
|
914
1301
|
# - started?()
|
|
915
1302
|
# -->
|
|
916
|
-
# Returns true if the HTTP session has been started
|
|
1303
|
+
# Returns `true` if the HTTP session has been started:
|
|
1304
|
+
#
|
|
1305
|
+
# http = Net::HTTP.new(hostname)
|
|
1306
|
+
# http.started? # => false
|
|
1307
|
+
# http.start
|
|
1308
|
+
# http.started? # => true
|
|
1309
|
+
# http.finish # => nil
|
|
1310
|
+
# http.started? # => false
|
|
1311
|
+
#
|
|
1312
|
+
# Net::HTTP.start(hostname) do |http|
|
|
1313
|
+
# http.started?
|
|
1314
|
+
# end # => true
|
|
1315
|
+
# http.started? # => false
|
|
917
1316
|
#
|
|
918
1317
|
def started?: () -> bool
|
|
919
1318
|
|
|
@@ -924,13 +1323,17 @@ module Net
|
|
|
924
1323
|
#
|
|
925
1324
|
alias active? started?
|
|
926
1325
|
|
|
1326
|
+
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1327
|
+
# Sets or returns whether to close the connection when the response is empty;
|
|
1328
|
+
# initially `false`.
|
|
1329
|
+
#
|
|
927
1330
|
attr_accessor close_on_empty_response: untyped
|
|
928
1331
|
|
|
929
1332
|
# <!--
|
|
930
1333
|
# rdoc-file=lib/net/http.rb
|
|
931
1334
|
# - use_ssl?()
|
|
932
1335
|
# -->
|
|
933
|
-
# Returns true if SSL
|
|
1336
|
+
# Returns `true` if `self` uses SSL, `false` otherwise. See Net::HTTP#use_ssl=.
|
|
934
1337
|
#
|
|
935
1338
|
def use_ssl?: () -> bool
|
|
936
1339
|
|
|
@@ -938,8 +1341,12 @@ module Net
|
|
|
938
1341
|
# rdoc-file=lib/net/http.rb
|
|
939
1342
|
# - use_ssl=(flag)
|
|
940
1343
|
# -->
|
|
941
|
-
#
|
|
942
|
-
#
|
|
1344
|
+
# Sets whether a new session is to use [Transport Layer
|
|
1345
|
+
# Security](https://en.wikipedia.org/wiki/Transport_Layer_Security):
|
|
1346
|
+
#
|
|
1347
|
+
# Raises IOError if attempting to change during a session.
|
|
1348
|
+
#
|
|
1349
|
+
# Raises OpenSSL::SSL::SSLError if the port is not an HTTPS port.
|
|
943
1350
|
#
|
|
944
1351
|
def use_ssl=: (boolish flag) -> void
|
|
945
1352
|
|
|
@@ -948,87 +1355,95 @@ module Net
|
|
|
948
1355
|
SSL_ATTRIBUTES: Array[Symbol]
|
|
949
1356
|
|
|
950
1357
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
951
|
-
# Sets path
|
|
952
|
-
#
|
|
953
|
-
# The file can contain several CA certificates.
|
|
1358
|
+
# Sets or returns the path to a CA certification file in PEM format.
|
|
954
1359
|
#
|
|
955
1360
|
attr_accessor ca_file: untyped
|
|
956
1361
|
|
|
957
1362
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
958
|
-
# Sets path of
|
|
959
|
-
# format.
|
|
1363
|
+
# Sets or returns the path of to CA directory containing certification files in
|
|
1364
|
+
# PEM format.
|
|
960
1365
|
#
|
|
961
1366
|
attr_accessor ca_path: untyped
|
|
962
1367
|
|
|
963
1368
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
964
|
-
# Sets
|
|
965
|
-
#
|
|
1369
|
+
# Sets or returns the OpenSSL::X509::Certificate object to be used for client
|
|
1370
|
+
# certification.
|
|
966
1371
|
#
|
|
967
1372
|
attr_accessor cert: untyped
|
|
968
1373
|
|
|
969
1374
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
970
|
-
# Sets the X509::Store to
|
|
1375
|
+
# Sets or returns the X509::Store to be used for verifying peer certificate.
|
|
971
1376
|
#
|
|
972
1377
|
attr_accessor cert_store: untyped
|
|
973
1378
|
|
|
974
1379
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
975
|
-
# Sets the available ciphers.
|
|
1380
|
+
# Sets or returns the available SSL ciphers. See
|
|
1381
|
+
# [OpenSSL::SSL::SSLContext#ciphers=](rdoc-ref:OpenSSL::SSL::SSLContext#ciphers-
|
|
1382
|
+
# 3D).
|
|
976
1383
|
#
|
|
977
1384
|
attr_accessor ciphers: untyped
|
|
978
1385
|
|
|
979
1386
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
980
|
-
# Sets the extra X509 certificates to be added to the certificate
|
|
981
|
-
#
|
|
1387
|
+
# Sets or returns the extra X509 certificates to be added to the certificate
|
|
1388
|
+
# chain. See
|
|
1389
|
+
# [OpenSSL::SSL::SSLContext#add_certificate](rdoc-ref:OpenSSL::SSL::SSLContext#a
|
|
1390
|
+
# dd_certificate).
|
|
982
1391
|
#
|
|
983
1392
|
attr_accessor extra_chain_cert: untyped
|
|
984
1393
|
|
|
985
1394
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
986
|
-
# Sets
|
|
987
|
-
# appeared in Michal Rokos's OpenSSL extension.)
|
|
1395
|
+
# Sets or returns the OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.
|
|
988
1396
|
#
|
|
989
1397
|
attr_accessor key: untyped
|
|
990
1398
|
|
|
991
1399
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
992
|
-
# Sets the SSL timeout seconds.
|
|
1400
|
+
# Sets or returns the SSL timeout seconds.
|
|
993
1401
|
#
|
|
994
1402
|
attr_accessor ssl_timeout: untyped
|
|
995
1403
|
|
|
996
1404
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
997
|
-
# Sets the SSL version.
|
|
1405
|
+
# Sets or returns the SSL version. See
|
|
1406
|
+
# [OpenSSL::SSL::SSLContext#ssl_version=](rdoc-ref:OpenSSL::SSL::SSLContext#ssl_
|
|
1407
|
+
# version-3D).
|
|
998
1408
|
#
|
|
999
1409
|
attr_accessor ssl_version: untyped
|
|
1000
1410
|
|
|
1001
1411
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1002
|
-
# Sets the minimum SSL version.
|
|
1412
|
+
# Sets or returns the minimum SSL version. See
|
|
1413
|
+
# [OpenSSL::SSL::SSLContext#min_version=](rdoc-ref:OpenSSL::SSL::SSLContext#min_
|
|
1414
|
+
# version-3D).
|
|
1003
1415
|
#
|
|
1004
1416
|
attr_accessor min_version: untyped
|
|
1005
1417
|
|
|
1006
1418
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1007
|
-
# Sets the maximum SSL version.
|
|
1419
|
+
# Sets or returns the maximum SSL version. See
|
|
1420
|
+
# [OpenSSL::SSL::SSLContext#max_version=](rdoc-ref:OpenSSL::SSL::SSLContext#max_
|
|
1421
|
+
# version-3D).
|
|
1008
1422
|
#
|
|
1009
1423
|
attr_accessor max_version: untyped
|
|
1010
1424
|
|
|
1011
1425
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1012
|
-
# Sets the
|
|
1426
|
+
# Sets or returns the callback for the server certification verification.
|
|
1013
1427
|
#
|
|
1014
1428
|
attr_accessor verify_callback: untyped
|
|
1015
1429
|
|
|
1016
1430
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1017
|
-
# Sets the maximum depth for the certificate chain verification.
|
|
1431
|
+
# Sets or returns the maximum depth for the certificate chain verification.
|
|
1018
1432
|
#
|
|
1019
1433
|
attr_accessor verify_depth: untyped
|
|
1020
1434
|
|
|
1021
1435
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1022
|
-
# Sets the flags for server the certification verification at
|
|
1023
|
-
# SSL/TLS session.
|
|
1024
|
-
#
|
|
1025
|
-
# OpenSSL::SSL::VERIFY_NONE or OpenSSL::SSL::VERIFY_PEER are acceptable.
|
|
1436
|
+
# Sets or returns the flags for server the certification verification at the
|
|
1437
|
+
# beginning of the SSL/TLS session. OpenSSL::SSL::VERIFY_NONE or
|
|
1438
|
+
# OpenSSL::SSL::VERIFY_PEER are acceptable.
|
|
1026
1439
|
#
|
|
1027
1440
|
attr_accessor verify_mode: untyped
|
|
1028
1441
|
|
|
1029
1442
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1030
|
-
# Sets to
|
|
1031
|
-
#
|
|
1443
|
+
# Sets or returns whether to verify that the server certificate is valid for the
|
|
1444
|
+
# hostname. See
|
|
1445
|
+
# [OpenSSL::SSL::SSLContext#verify_hostname=](rdoc-ref:OpenSSL::SSL::SSLContext#
|
|
1446
|
+
# attribute-i-verify_mode).
|
|
1032
1447
|
#
|
|
1033
1448
|
attr_accessor verify_hostname: untyped
|
|
1034
1449
|
|
|
@@ -1036,7 +1451,8 @@ module Net
|
|
|
1036
1451
|
# rdoc-file=lib/net/http.rb
|
|
1037
1452
|
# - peer_cert()
|
|
1038
1453
|
# -->
|
|
1039
|
-
# Returns the
|
|
1454
|
+
# Returns the X509 certificate chain (an array of strings) for the session's
|
|
1455
|
+
# socket peer, or `nil` if none.
|
|
1040
1456
|
#
|
|
1041
1457
|
def peer_cert: () -> (nil | untyped)
|
|
1042
1458
|
|
|
@@ -1044,14 +1460,25 @@ module Net
|
|
|
1044
1460
|
# rdoc-file=lib/net/http.rb
|
|
1045
1461
|
# - start() { |http| ... }
|
|
1046
1462
|
# -->
|
|
1047
|
-
#
|
|
1463
|
+
# Starts an HTTP session.
|
|
1464
|
+
#
|
|
1465
|
+
# Without a block, returns `self`:
|
|
1048
1466
|
#
|
|
1049
|
-
#
|
|
1050
|
-
#
|
|
1051
|
-
#
|
|
1467
|
+
# http = Net::HTTP.new(hostname)
|
|
1468
|
+
# # => #<Net::HTTP jsonplaceholder.typicode.com:80 open=false>
|
|
1469
|
+
# http.start
|
|
1470
|
+
# # => #<Net::HTTP jsonplaceholder.typicode.com:80 open=true>
|
|
1471
|
+
# http.started? # => true
|
|
1472
|
+
# http.finish
|
|
1473
|
+
#
|
|
1474
|
+
# With a block, calls the block with `self`, finishes the session when the block
|
|
1475
|
+
# exits, and returns the block's value:
|
|
1052
1476
|
#
|
|
1053
|
-
#
|
|
1054
|
-
#
|
|
1477
|
+
# http.start do |http|
|
|
1478
|
+
# http
|
|
1479
|
+
# end
|
|
1480
|
+
# # => #<Net::HTTP jsonplaceholder.typicode.com:80 open=false>
|
|
1481
|
+
# http.started? # => false
|
|
1055
1482
|
#
|
|
1056
1483
|
def start: [T] () { (Net::HTTP) -> T } -> T
|
|
1057
1484
|
| () -> Net::HTTP
|
|
@@ -1062,8 +1489,15 @@ module Net
|
|
|
1062
1489
|
# rdoc-file=lib/net/http.rb
|
|
1063
1490
|
# - finish()
|
|
1064
1491
|
# -->
|
|
1065
|
-
# Finishes the HTTP session
|
|
1066
|
-
#
|
|
1492
|
+
# Finishes the HTTP session:
|
|
1493
|
+
#
|
|
1494
|
+
# http = Net::HTTP.new(hostname)
|
|
1495
|
+
# http.start
|
|
1496
|
+
# http.started? # => true
|
|
1497
|
+
# http.finish # => nil
|
|
1498
|
+
# http.started? # => false
|
|
1499
|
+
#
|
|
1500
|
+
# Raises IOError if not in a session.
|
|
1067
1501
|
#
|
|
1068
1502
|
def finish: () -> void
|
|
1069
1503
|
|
|
@@ -1085,27 +1519,31 @@ module Net
|
|
|
1085
1519
|
# rdoc-file=lib/net/http.rb
|
|
1086
1520
|
# - proxy_class?()
|
|
1087
1521
|
# -->
|
|
1088
|
-
#
|
|
1522
|
+
# Returns true if self is a class which was created by HTTP::Proxy.
|
|
1089
1523
|
#
|
|
1090
1524
|
def self.proxy_class?: () -> bool
|
|
1091
1525
|
|
|
1092
1526
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1093
|
-
#
|
|
1527
|
+
# Returns the address of the proxy host, or `nil` if none; see
|
|
1528
|
+
# Net::HTTP@Proxy+Server.
|
|
1094
1529
|
#
|
|
1095
1530
|
attr_reader self.proxy_address: String?
|
|
1096
1531
|
|
|
1097
1532
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1098
|
-
#
|
|
1533
|
+
# Returns the port number of the proxy host, or `nil` if none; see
|
|
1534
|
+
# Net::HTTP@Proxy+Server.
|
|
1099
1535
|
#
|
|
1100
1536
|
attr_reader self.proxy_port: Integer?
|
|
1101
1537
|
|
|
1102
1538
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1103
|
-
#
|
|
1539
|
+
# Returns the user name for accessing the proxy, or `nil` if none; see
|
|
1540
|
+
# Net::HTTP@Proxy+Server.
|
|
1104
1541
|
#
|
|
1105
1542
|
attr_reader self.proxy_user: String?
|
|
1106
1543
|
|
|
1107
1544
|
# <!-- rdoc-file=lib/net/http.rb -->
|
|
1108
|
-
#
|
|
1545
|
+
# Returns the password for accessing the proxy, or `nil` if none; see
|
|
1546
|
+
# Net::HTTP@Proxy+Server.
|
|
1109
1547
|
#
|
|
1110
1548
|
attr_reader self.proxy_pass: String?
|
|
1111
1549
|
|
|
@@ -1113,7 +1551,8 @@ module Net
|
|
|
1113
1551
|
# rdoc-file=lib/net/http.rb
|
|
1114
1552
|
# - proxy?()
|
|
1115
1553
|
# -->
|
|
1116
|
-
#
|
|
1554
|
+
# Returns `true` if a proxy server is defined, `false` otherwise; see [Proxy
|
|
1555
|
+
# Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
1117
1556
|
#
|
|
1118
1557
|
def proxy?: () -> bool
|
|
1119
1558
|
|
|
@@ -1121,7 +1560,8 @@ module Net
|
|
|
1121
1560
|
# rdoc-file=lib/net/http.rb
|
|
1122
1561
|
# - proxy_from_env?()
|
|
1123
1562
|
# -->
|
|
1124
|
-
#
|
|
1563
|
+
# Returns `true` if the proxy server is defined in the environment, `false`
|
|
1564
|
+
# otherwise; see [Proxy Server](rdoc-ref:Net::HTTP@Proxy+Server).
|
|
1125
1565
|
#
|
|
1126
1566
|
def proxy_from_env?: () -> bool
|
|
1127
1567
|
|
|
@@ -1145,39 +1585,33 @@ module Net
|
|
|
1145
1585
|
|
|
1146
1586
|
# <!--
|
|
1147
1587
|
# rdoc-file=lib/net/http.rb
|
|
1148
|
-
# - get(path, initheader = nil
|
|
1588
|
+
# - get(path, initheader = nil) {|res| ... }
|
|
1149
1589
|
# -->
|
|
1150
|
-
#
|
|
1151
|
-
#
|
|
1590
|
+
# Sends a GET request to the server; returns an instance of a subclass of
|
|
1591
|
+
# Net::HTTPResponse.
|
|
1152
1592
|
#
|
|
1153
|
-
#
|
|
1154
|
-
#
|
|
1155
|
-
# a value of "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" is used, so that gzip
|
|
1156
|
-
# compression is used in preference to deflate compression, which is used in
|
|
1157
|
-
# preference to no compression. Ruby doesn't have libraries to support the
|
|
1158
|
-
# compress (Lempel-Ziv) compression, so that is not supported. The intent of
|
|
1159
|
-
# this is to reduce bandwidth by default. If this routine sets up compression,
|
|
1160
|
-
# then it does the decompression also, removing the header as well to prevent
|
|
1161
|
-
# confusion. Otherwise it leaves the body as it found it.
|
|
1593
|
+
# The request is based on the Net::HTTP::Get object created from string `path`
|
|
1594
|
+
# and initial headers hash `initheader`.
|
|
1162
1595
|
#
|
|
1163
|
-
#
|
|
1596
|
+
# With a block given, calls the block with the response body:
|
|
1164
1597
|
#
|
|
1165
|
-
#
|
|
1166
|
-
#
|
|
1167
|
-
#
|
|
1598
|
+
# http = Net::HTTP.new(hostname)
|
|
1599
|
+
# http.get('/todos/1') do |res|
|
|
1600
|
+
# p res
|
|
1601
|
+
# end # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1168
1602
|
#
|
|
1169
|
-
#
|
|
1603
|
+
# Output:
|
|
1170
1604
|
#
|
|
1171
|
-
#
|
|
1605
|
+
# "{\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false\n}"
|
|
1172
1606
|
#
|
|
1173
|
-
#
|
|
1607
|
+
# With no block given, simply returns the response object:
|
|
1174
1608
|
#
|
|
1175
|
-
# #
|
|
1176
|
-
#
|
|
1177
|
-
#
|
|
1178
|
-
#
|
|
1179
|
-
#
|
|
1180
|
-
#
|
|
1609
|
+
# http.get('/') # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1610
|
+
#
|
|
1611
|
+
# Related:
|
|
1612
|
+
#
|
|
1613
|
+
# * Net::HTTP::Get: request class for HTTP method GET.
|
|
1614
|
+
# * Net::HTTP.get: sends GET request, returns response body.
|
|
1181
1615
|
#
|
|
1182
1616
|
def get: (String path, ?Hash[String, untyped] initheader, ?bot dest) ?{ (String body_segment) -> void } -> Net::HTTPResponse
|
|
1183
1617
|
|
|
@@ -1185,69 +1619,112 @@ module Net
|
|
|
1185
1619
|
# rdoc-file=lib/net/http.rb
|
|
1186
1620
|
# - head(path, initheader = nil)
|
|
1187
1621
|
# -->
|
|
1188
|
-
#
|
|
1189
|
-
#
|
|
1622
|
+
# Sends a HEAD request to the server; returns an instance of a subclass of
|
|
1623
|
+
# Net::HTTPResponse.
|
|
1190
1624
|
#
|
|
1191
|
-
#
|
|
1625
|
+
# The request is based on the Net::HTTP::Head object created from string `path`
|
|
1626
|
+
# and initial headers hash `initheader`:
|
|
1192
1627
|
#
|
|
1193
|
-
#
|
|
1194
|
-
#
|
|
1195
|
-
#
|
|
1196
|
-
#
|
|
1197
|
-
#
|
|
1198
|
-
#
|
|
1199
|
-
#
|
|
1628
|
+
# res = http.head('/todos/1') # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1629
|
+
# res.body # => nil
|
|
1630
|
+
# res.to_hash.take(3)
|
|
1631
|
+
# # =>
|
|
1632
|
+
# [["date", ["Wed, 15 Feb 2023 15:25:42 GMT"]],
|
|
1633
|
+
# ["content-type", ["application/json; charset=utf-8"]],
|
|
1634
|
+
# ["connection", ["close"]]]
|
|
1200
1635
|
#
|
|
1201
1636
|
def head: (String path, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1202
1637
|
|
|
1203
1638
|
# <!--
|
|
1204
1639
|
# rdoc-file=lib/net/http.rb
|
|
1205
|
-
# - post(path, data, initheader = nil
|
|
1640
|
+
# - post(path, data, initheader = nil) {|res| ... }
|
|
1206
1641
|
# -->
|
|
1207
|
-
#
|
|
1208
|
-
#
|
|
1642
|
+
# Sends a POST request to the server; returns an instance of a subclass of
|
|
1643
|
+
# Net::HTTPResponse.
|
|
1209
1644
|
#
|
|
1210
|
-
#
|
|
1645
|
+
# The request is based on the Net::HTTP::Post object created from string `path`,
|
|
1646
|
+
# string `data`, and initial headers hash `initheader`.
|
|
1211
1647
|
#
|
|
1212
|
-
#
|
|
1213
|
-
# string as it is read from the socket. Note that in this case, the returned
|
|
1214
|
-
# response object will **not** contain a (meaningful) body.
|
|
1648
|
+
# With a block given, calls the block with the response body:
|
|
1215
1649
|
#
|
|
1216
|
-
#
|
|
1650
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1651
|
+
# http = Net::HTTP.new(hostname)
|
|
1652
|
+
# http.post('/todos', data) do |res|
|
|
1653
|
+
# p res
|
|
1654
|
+
# end # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1217
1655
|
#
|
|
1218
|
-
#
|
|
1656
|
+
# Output:
|
|
1219
1657
|
#
|
|
1220
|
-
#
|
|
1658
|
+
# "{\n \"{\\\"userId\\\": 1, \\\"id\\\": 1, \\\"title\\\": \\\"delectus aut autem\\\", \\\"completed\\\": false}\": \"\",\n \"id\": 201\n}"
|
|
1221
1659
|
#
|
|
1222
|
-
#
|
|
1223
|
-
# File.open('result.txt', 'w') {|f|
|
|
1224
|
-
# http.post('/cgi-bin/search.rb', 'query=foo') do |str|
|
|
1225
|
-
# f.write str
|
|
1226
|
-
# end
|
|
1227
|
-
# }
|
|
1660
|
+
# With no block given, simply returns the response object:
|
|
1228
1661
|
#
|
|
1229
|
-
#
|
|
1230
|
-
#
|
|
1662
|
+
# http.post('/todos', data) # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1663
|
+
#
|
|
1664
|
+
# Related:
|
|
1665
|
+
#
|
|
1666
|
+
# * Net::HTTP::Post: request class for HTTP method POST.
|
|
1667
|
+
# * Net::HTTP.post: sends POST request, returns response body.
|
|
1231
1668
|
#
|
|
1232
1669
|
def post: (String path, String data, ?Hash[String, untyped] initheader, ?bot dest) ?{ (String body_segment) -> void } -> Net::HTTPResponse
|
|
1233
1670
|
|
|
1234
1671
|
# <!--
|
|
1235
1672
|
# rdoc-file=lib/net/http.rb
|
|
1236
|
-
# - patch(path, data, initheader = nil
|
|
1673
|
+
# - patch(path, data, initheader = nil) {|res| ... }
|
|
1237
1674
|
# -->
|
|
1238
|
-
# Sends a PATCH request to the
|
|
1239
|
-
#
|
|
1675
|
+
# Sends a PATCH request to the server; returns an instance of a subclass of
|
|
1676
|
+
# Net::HTTPResponse.
|
|
1677
|
+
#
|
|
1678
|
+
# The request is based on the Net::HTTP::Patch object created from string
|
|
1679
|
+
# `path`, string `data`, and initial headers hash `initheader`.
|
|
1680
|
+
#
|
|
1681
|
+
# With a block given, calls the block with the response body:
|
|
1682
|
+
#
|
|
1683
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1684
|
+
# http = Net::HTTP.new(hostname)
|
|
1685
|
+
# http.patch('/todos/1', data) do |res|
|
|
1686
|
+
# p res
|
|
1687
|
+
# end # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1688
|
+
#
|
|
1689
|
+
# Output:
|
|
1690
|
+
#
|
|
1691
|
+
# "{\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false,\n \"{\\\"userId\\\": 1, \\\"id\\\": 1, \\\"title\\\": \\\"delectus aut autem\\\", \\\"completed\\\": false}\": \"\"\n}"
|
|
1692
|
+
#
|
|
1693
|
+
# With no block given, simply returns the response object:
|
|
1694
|
+
#
|
|
1695
|
+
# http.patch('/todos/1', data) # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1240
1696
|
#
|
|
1241
1697
|
def patch: (String path, String data, ?Hash[String, untyped] initheader, ?bot dest) ?{ (String body_segment) -> void } -> Net::HTTPResponse
|
|
1242
1698
|
|
|
1699
|
+
# <!--
|
|
1700
|
+
# rdoc-file=lib/net/http.rb
|
|
1701
|
+
# - put(path, data, initheader = nil)
|
|
1702
|
+
# -->
|
|
1703
|
+
# Sends a PUT request to the server; returns an instance of a subclass of
|
|
1704
|
+
# Net::HTTPResponse.
|
|
1705
|
+
#
|
|
1706
|
+
# The request is based on the Net::HTTP::Put object created from string `path`,
|
|
1707
|
+
# string `data`, and initial headers hash `initheader`.
|
|
1708
|
+
#
|
|
1709
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1710
|
+
# http = Net::HTTP.new(hostname)
|
|
1711
|
+
# http.put('/todos/1', data) # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1712
|
+
#
|
|
1243
1713
|
def put: (String path, String data, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1244
1714
|
|
|
1245
1715
|
# <!--
|
|
1246
1716
|
# rdoc-file=lib/net/http.rb
|
|
1247
1717
|
# - proppatch(path, body, initheader = nil)
|
|
1248
1718
|
# -->
|
|
1249
|
-
# Sends a PROPPATCH request to the
|
|
1250
|
-
# HTTPResponse
|
|
1719
|
+
# Sends a PROPPATCH request to the server; returns an instance of a subclass of
|
|
1720
|
+
# Net::HTTPResponse.
|
|
1721
|
+
#
|
|
1722
|
+
# The request is based on the Net::HTTP::Proppatch object created from string
|
|
1723
|
+
# `path`, string `body`, and initial headers hash `initheader`.
|
|
1724
|
+
#
|
|
1725
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1726
|
+
# http = Net::HTTP.new(hostname)
|
|
1727
|
+
# http.proppatch('/todos/1', data)
|
|
1251
1728
|
#
|
|
1252
1729
|
def proppatch: (String path, String body, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1253
1730
|
|
|
@@ -1255,8 +1732,15 @@ module Net
|
|
|
1255
1732
|
# rdoc-file=lib/net/http.rb
|
|
1256
1733
|
# - lock(path, body, initheader = nil)
|
|
1257
1734
|
# -->
|
|
1258
|
-
# Sends a LOCK request to the
|
|
1259
|
-
#
|
|
1735
|
+
# Sends a LOCK request to the server; returns an instance of a subclass of
|
|
1736
|
+
# Net::HTTPResponse.
|
|
1737
|
+
#
|
|
1738
|
+
# The request is based on the Net::HTTP::Lock object created from string `path`,
|
|
1739
|
+
# string `body`, and initial headers hash `initheader`.
|
|
1740
|
+
#
|
|
1741
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1742
|
+
# http = Net::HTTP.new(hostname)
|
|
1743
|
+
# http.lock('/todos/1', data)
|
|
1260
1744
|
#
|
|
1261
1745
|
def lock: (String path, String body, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1262
1746
|
|
|
@@ -1264,8 +1748,15 @@ module Net
|
|
|
1264
1748
|
# rdoc-file=lib/net/http.rb
|
|
1265
1749
|
# - unlock(path, body, initheader = nil)
|
|
1266
1750
|
# -->
|
|
1267
|
-
# Sends
|
|
1268
|
-
#
|
|
1751
|
+
# Sends an UNLOCK request to the server; returns an instance of a subclass of
|
|
1752
|
+
# Net::HTTPResponse.
|
|
1753
|
+
#
|
|
1754
|
+
# The request is based on the Net::HTTP::Unlock object created from string
|
|
1755
|
+
# `path`, string `body`, and initial headers hash `initheader`.
|
|
1756
|
+
#
|
|
1757
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1758
|
+
# http = Net::HTTP.new(hostname)
|
|
1759
|
+
# http.unlock('/todos/1', data)
|
|
1269
1760
|
#
|
|
1270
1761
|
def unlock: (String path, String body, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1271
1762
|
|
|
@@ -1273,8 +1764,14 @@ module Net
|
|
|
1273
1764
|
# rdoc-file=lib/net/http.rb
|
|
1274
1765
|
# - options(path, initheader = nil)
|
|
1275
1766
|
# -->
|
|
1276
|
-
# Sends
|
|
1277
|
-
#
|
|
1767
|
+
# Sends an Options request to the server; returns an instance of a subclass of
|
|
1768
|
+
# Net::HTTPResponse.
|
|
1769
|
+
#
|
|
1770
|
+
# The request is based on the Net::HTTP::Options object created from string
|
|
1771
|
+
# `path` and initial headers hash `initheader`.
|
|
1772
|
+
#
|
|
1773
|
+
# http = Net::HTTP.new(hostname)
|
|
1774
|
+
# http.options('/')
|
|
1278
1775
|
#
|
|
1279
1776
|
def options: (String path, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1280
1777
|
|
|
@@ -1282,8 +1779,15 @@ module Net
|
|
|
1282
1779
|
# rdoc-file=lib/net/http.rb
|
|
1283
1780
|
# - propfind(path, body = nil, initheader = {'Depth' => '0'})
|
|
1284
1781
|
# -->
|
|
1285
|
-
# Sends a PROPFIND request to the
|
|
1286
|
-
#
|
|
1782
|
+
# Sends a PROPFIND request to the server; returns an instance of a subclass of
|
|
1783
|
+
# Net::HTTPResponse.
|
|
1784
|
+
#
|
|
1785
|
+
# The request is based on the Net::HTTP::Propfind object created from string
|
|
1786
|
+
# `path`, string `body`, and initial headers hash `initheader`.
|
|
1787
|
+
#
|
|
1788
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1789
|
+
# http = Net::HTTP.new(hostname)
|
|
1790
|
+
# http.propfind('/todos/1', data)
|
|
1287
1791
|
#
|
|
1288
1792
|
def propfind: (String path, ?untyped? body, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1289
1793
|
|
|
@@ -1291,8 +1795,14 @@ module Net
|
|
|
1291
1795
|
# rdoc-file=lib/net/http.rb
|
|
1292
1796
|
# - delete(path, initheader = {'Depth' => 'Infinity'})
|
|
1293
1797
|
# -->
|
|
1294
|
-
# Sends a DELETE request to the
|
|
1295
|
-
#
|
|
1798
|
+
# Sends a DELETE request to the server; returns an instance of a subclass of
|
|
1799
|
+
# Net::HTTPResponse.
|
|
1800
|
+
#
|
|
1801
|
+
# The request is based on the Net::HTTP::Delete object created from string
|
|
1802
|
+
# `path` and initial headers hash `initheader`.
|
|
1803
|
+
#
|
|
1804
|
+
# http = Net::HTTP.new(hostname)
|
|
1805
|
+
# http.delete('/todos/1')
|
|
1296
1806
|
#
|
|
1297
1807
|
def delete: (String path, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1298
1808
|
|
|
@@ -1300,8 +1810,14 @@ module Net
|
|
|
1300
1810
|
# rdoc-file=lib/net/http.rb
|
|
1301
1811
|
# - move(path, initheader = nil)
|
|
1302
1812
|
# -->
|
|
1303
|
-
# Sends a MOVE request to the
|
|
1304
|
-
#
|
|
1813
|
+
# Sends a MOVE request to the server; returns an instance of a subclass of
|
|
1814
|
+
# Net::HTTPResponse.
|
|
1815
|
+
#
|
|
1816
|
+
# The request is based on the Net::HTTP::Move object created from string `path`
|
|
1817
|
+
# and initial headers hash `initheader`.
|
|
1818
|
+
#
|
|
1819
|
+
# http = Net::HTTP.new(hostname)
|
|
1820
|
+
# http.move('/todos/1')
|
|
1305
1821
|
#
|
|
1306
1822
|
def move: (String path, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1307
1823
|
|
|
@@ -1309,8 +1825,14 @@ module Net
|
|
|
1309
1825
|
# rdoc-file=lib/net/http.rb
|
|
1310
1826
|
# - copy(path, initheader = nil)
|
|
1311
1827
|
# -->
|
|
1312
|
-
# Sends a COPY request to the
|
|
1313
|
-
#
|
|
1828
|
+
# Sends a COPY request to the server; returns an instance of a subclass of
|
|
1829
|
+
# Net::HTTPResponse.
|
|
1830
|
+
#
|
|
1831
|
+
# The request is based on the Net::HTTP::Copy object created from string `path`
|
|
1832
|
+
# and initial headers hash `initheader`.
|
|
1833
|
+
#
|
|
1834
|
+
# http = Net::HTTP.new(hostname)
|
|
1835
|
+
# http.copy('/todos/1')
|
|
1314
1836
|
#
|
|
1315
1837
|
def copy: (String path, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1316
1838
|
|
|
@@ -1318,8 +1840,15 @@ module Net
|
|
|
1318
1840
|
# rdoc-file=lib/net/http.rb
|
|
1319
1841
|
# - mkcol(path, body = nil, initheader = nil)
|
|
1320
1842
|
# -->
|
|
1321
|
-
# Sends a MKCOL request to the
|
|
1322
|
-
#
|
|
1843
|
+
# Sends a MKCOL request to the server; returns an instance of a subclass of
|
|
1844
|
+
# Net::HTTPResponse.
|
|
1845
|
+
#
|
|
1846
|
+
# The request is based on the Net::HTTP::Mkcol object created from string
|
|
1847
|
+
# `path`, string `body`, and initial headers hash `initheader`.
|
|
1848
|
+
#
|
|
1849
|
+
# data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'
|
|
1850
|
+
# http.mkcol('/todos/1', data)
|
|
1851
|
+
# http = Net::HTTP.new(hostname)
|
|
1323
1852
|
#
|
|
1324
1853
|
def mkcol: (String path, ?untyped? body, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1325
1854
|
|
|
@@ -1327,8 +1856,14 @@ module Net
|
|
|
1327
1856
|
# rdoc-file=lib/net/http.rb
|
|
1328
1857
|
# - trace(path, initheader = nil)
|
|
1329
1858
|
# -->
|
|
1330
|
-
# Sends a TRACE request to the
|
|
1331
|
-
#
|
|
1859
|
+
# Sends a TRACE request to the server; returns an instance of a subclass of
|
|
1860
|
+
# Net::HTTPResponse.
|
|
1861
|
+
#
|
|
1862
|
+
# The request is based on the Net::HTTP::Trace object created from string `path`
|
|
1863
|
+
# and initial headers hash `initheader`.
|
|
1864
|
+
#
|
|
1865
|
+
# http = Net::HTTP.new(hostname)
|
|
1866
|
+
# http.trace('/todos/1')
|
|
1332
1867
|
#
|
|
1333
1868
|
def trace: (String path, ?Hash[String, untyped] initheader) -> Net::HTTPResponse
|
|
1334
1869
|
|
|
@@ -1336,29 +1871,27 @@ module Net
|
|
|
1336
1871
|
# rdoc-file=lib/net/http.rb
|
|
1337
1872
|
# - request_get(path, initheader = nil) { |response| ... }
|
|
1338
1873
|
# -->
|
|
1339
|
-
# Sends a GET request to the
|
|
1874
|
+
# Sends a GET request to the server; forms the response into a Net::HTTPResponse
|
|
1340
1875
|
# object.
|
|
1341
1876
|
#
|
|
1342
|
-
#
|
|
1343
|
-
#
|
|
1344
|
-
#
|
|
1877
|
+
# The request is based on the Net::HTTP::Get object created from string `path`
|
|
1878
|
+
# and initial headers hash `initheader`.
|
|
1879
|
+
#
|
|
1880
|
+
# With no block given, returns the response object:
|
|
1345
1881
|
#
|
|
1346
|
-
#
|
|
1882
|
+
# http = Net::HTTP.new(hostname)
|
|
1883
|
+
# http.request_get('/todos') # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1347
1884
|
#
|
|
1348
|
-
#
|
|
1885
|
+
# With a block given, calls the block with the response object and returns the
|
|
1886
|
+
# response object:
|
|
1349
1887
|
#
|
|
1350
|
-
#
|
|
1351
|
-
#
|
|
1352
|
-
#
|
|
1353
|
-
# puts response.body
|
|
1888
|
+
# http.request_get('/todos') do |res|
|
|
1889
|
+
# p res
|
|
1890
|
+
# end # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1354
1891
|
#
|
|
1355
|
-
#
|
|
1356
|
-
#
|
|
1357
|
-
#
|
|
1358
|
-
# response.read_body do |str| # read body now
|
|
1359
|
-
# print str
|
|
1360
|
-
# end
|
|
1361
|
-
# }
|
|
1892
|
+
# Output:
|
|
1893
|
+
#
|
|
1894
|
+
# #<Net::HTTPOK 200 OK readbody=false>
|
|
1362
1895
|
#
|
|
1363
1896
|
def request_get: (String path, ?Hash[String, untyped] initheader) ?{ (Net::HTTPResponse response) -> void } -> Net::HTTPResponse
|
|
1364
1897
|
|
|
@@ -1366,15 +1899,14 @@ module Net
|
|
|
1366
1899
|
# rdoc-file=lib/net/http.rb
|
|
1367
1900
|
# - request_head(path, initheader = nil, &block)
|
|
1368
1901
|
# -->
|
|
1369
|
-
# Sends a HEAD request to the
|
|
1370
|
-
# Net::HTTPResponse
|
|
1902
|
+
# Sends a HEAD request to the server; returns an instance of a subclass of
|
|
1903
|
+
# Net::HTTPResponse.
|
|
1371
1904
|
#
|
|
1372
|
-
#
|
|
1905
|
+
# The request is based on the Net::HTTP::Head object created from string `path`
|
|
1906
|
+
# and initial headers hash `initheader`.
|
|
1373
1907
|
#
|
|
1374
|
-
#
|
|
1375
|
-
#
|
|
1376
|
-
# response = http.request_head('/index.html')
|
|
1377
|
-
# p response['content-type']
|
|
1908
|
+
# http = Net::HTTP.new(hostname)
|
|
1909
|
+
# http.head('/todos/1') # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1378
1910
|
#
|
|
1379
1911
|
def request_head: (String path, ?Hash[String, untyped] initheader) ?{ (Net::HTTPResponse response) -> void } -> Net::HTTPResponse
|
|
1380
1912
|
|
|
@@ -1382,31 +1914,28 @@ module Net
|
|
|
1382
1914
|
# rdoc-file=lib/net/http.rb
|
|
1383
1915
|
# - request_post(path, data, initheader = nil) { |response| ... }
|
|
1384
1916
|
# -->
|
|
1385
|
-
# Sends a POST request to the
|
|
1917
|
+
# Sends a POST request to the server; forms the response into a
|
|
1918
|
+
# Net::HTTPResponse object.
|
|
1386
1919
|
#
|
|
1387
|
-
#
|
|
1920
|
+
# The request is based on the Net::HTTP::Post object created from string `path`,
|
|
1921
|
+
# string `data`, and initial headers hash `initheader`.
|
|
1388
1922
|
#
|
|
1389
|
-
#
|
|
1390
|
-
# body of that response will not have been read yet; the block can process it
|
|
1391
|
-
# using HTTPResponse#read_body, if desired.
|
|
1923
|
+
# With no block given, returns the response object:
|
|
1392
1924
|
#
|
|
1393
|
-
#
|
|
1925
|
+
# http = Net::HTTP.new(hostname)
|
|
1926
|
+
# http.post('/todos', 'xyzzy')
|
|
1927
|
+
# # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1394
1928
|
#
|
|
1395
|
-
#
|
|
1929
|
+
# With a block given, calls the block with the response body and returns the
|
|
1930
|
+
# response object:
|
|
1396
1931
|
#
|
|
1397
|
-
#
|
|
1398
|
-
#
|
|
1399
|
-
#
|
|
1400
|
-
# puts response.body # body is already read in this case
|
|
1932
|
+
# http.post('/todos', 'xyzzy') do |res|
|
|
1933
|
+
# p res
|
|
1934
|
+
# end # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1401
1935
|
#
|
|
1402
|
-
#
|
|
1403
|
-
#
|
|
1404
|
-
#
|
|
1405
|
-
# p response['content-type']
|
|
1406
|
-
# response.read_body do |str| # read body now
|
|
1407
|
-
# print str
|
|
1408
|
-
# end
|
|
1409
|
-
# }
|
|
1936
|
+
# Output:
|
|
1937
|
+
#
|
|
1938
|
+
# "{\n \"xyzzy\": \"\",\n \"id\": 201\n}"
|
|
1410
1939
|
#
|
|
1411
1940
|
def request_post: (String path, String data, ?Hash[String, untyped] initheader) ?{ (Net::HTTPResponse response) -> void } -> Net::HTTPResponse
|
|
1412
1941
|
|
|
@@ -1439,15 +1968,24 @@ module Net
|
|
|
1439
1968
|
# rdoc-file=lib/net/http.rb
|
|
1440
1969
|
# - send_request(name, path, data = nil, header = nil)
|
|
1441
1970
|
# -->
|
|
1442
|
-
# Sends an HTTP request to the
|
|
1443
|
-
#
|
|
1971
|
+
# Sends an HTTP request to the server; returns an instance of a subclass of
|
|
1972
|
+
# Net::HTTPResponse.
|
|
1444
1973
|
#
|
|
1445
|
-
#
|
|
1974
|
+
# The request is based on the Net::HTTPRequest object created from string
|
|
1975
|
+
# `path`, string `data`, and initial headers hash `header`. That object is an
|
|
1976
|
+
# instance of the [subclass of
|
|
1977
|
+
# Net::HTTPRequest](rdoc-ref:Net::HTTPRequest@Request+Subclasses), that
|
|
1978
|
+
# corresponds to the given uppercase string `name`, which must be an [HTTP
|
|
1979
|
+
# request method](https://en.wikipedia.org/wiki/HTTP#Request_methods) or a
|
|
1980
|
+
# [WebDAV request method](https://en.wikipedia.org/wiki/WebDAV#Implementation).
|
|
1446
1981
|
#
|
|
1447
|
-
#
|
|
1982
|
+
# Examples:
|
|
1448
1983
|
#
|
|
1449
|
-
#
|
|
1450
|
-
#
|
|
1984
|
+
# http = Net::HTTP.new(hostname)
|
|
1985
|
+
# http.send_request('GET', '/todos/1')
|
|
1986
|
+
# # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1987
|
+
# http.send_request('POST', '/todos', 'xyzzy')
|
|
1988
|
+
# # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1451
1989
|
#
|
|
1452
1990
|
def send_request: (String name, String path, ?String? data, ?Hash[String, untyped]? header) -> Net::HTTPResponse
|
|
1453
1991
|
|
|
@@ -1455,28 +1993,80 @@ module Net
|
|
|
1455
1993
|
# rdoc-file=lib/net/http.rb
|
|
1456
1994
|
# - request(req, body = nil) { |response| ... }
|
|
1457
1995
|
# -->
|
|
1458
|
-
# Sends
|
|
1996
|
+
# Sends the given request `req` to the server; forms the response into a
|
|
1997
|
+
# Net::HTTPResponse object.
|
|
1998
|
+
#
|
|
1999
|
+
# The given `req` must be an instance of a [subclass of
|
|
2000
|
+
# Net::HTTPRequest](rdoc-ref:Net::HTTPRequest@Request+Subclasses). Argument
|
|
2001
|
+
# `body` should be given only if needed for the request.
|
|
2002
|
+
#
|
|
2003
|
+
# With no block given, returns the response object:
|
|
2004
|
+
#
|
|
2005
|
+
# http = Net::HTTP.new(hostname)
|
|
2006
|
+
#
|
|
2007
|
+
# req = Net::HTTP::Get.new('/todos/1')
|
|
2008
|
+
# http.request(req)
|
|
2009
|
+
# # => #<Net::HTTPOK 200 OK readbody=true>
|
|
1459
2010
|
#
|
|
1460
|
-
#
|
|
1461
|
-
#
|
|
1462
|
-
#
|
|
2011
|
+
# req = Net::HTTP::Post.new('/todos')
|
|
2012
|
+
# http.request(req, 'xyzzy')
|
|
2013
|
+
# # => #<Net::HTTPCreated 201 Created readbody=true>
|
|
1463
2014
|
#
|
|
1464
|
-
#
|
|
2015
|
+
# With a block given, calls the block with the response and returns the
|
|
2016
|
+
# response:
|
|
1465
2017
|
#
|
|
1466
|
-
#
|
|
1467
|
-
#
|
|
1468
|
-
#
|
|
2018
|
+
# req = Net::HTTP::Get.new('/todos/1')
|
|
2019
|
+
# http.request(req) do |res|
|
|
2020
|
+
# p res
|
|
2021
|
+
# end # => #<Net::HTTPOK 200 OK readbody=true>
|
|
2022
|
+
#
|
|
2023
|
+
# Output:
|
|
1469
2024
|
#
|
|
1470
|
-
#
|
|
2025
|
+
# #<Net::HTTPOK 200 OK readbody=false>
|
|
1471
2026
|
#
|
|
1472
2027
|
def request: (Net::HTTPRequest req, ?String? body) ?{ (Net::HTTPResponse response) -> void } -> Net::HTTPResponse
|
|
1473
2028
|
end
|
|
1474
2029
|
|
|
1475
2030
|
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
1476
|
-
# HTTPGenericRequest is the parent of the Net::HTTPRequest class.
|
|
1477
|
-
#
|
|
2031
|
+
# HTTPGenericRequest is the parent of the Net::HTTPRequest class.
|
|
2032
|
+
#
|
|
2033
|
+
# Do not use this directly; instead, use a subclass of Net::HTTPRequest.
|
|
2034
|
+
#
|
|
2035
|
+
# ## About the Examples
|
|
2036
|
+
#
|
|
2037
|
+
# Examples here assume that `net/http` has been required (which also requires
|
|
2038
|
+
# `uri`):
|
|
2039
|
+
#
|
|
2040
|
+
# require 'net/http'
|
|
2041
|
+
#
|
|
2042
|
+
# Many code examples here use these example websites:
|
|
2043
|
+
#
|
|
2044
|
+
# * https://jsonplaceholder.typicode.com.
|
|
2045
|
+
# * http://example.com.
|
|
2046
|
+
#
|
|
2047
|
+
#
|
|
2048
|
+
# Some examples also assume these variables:
|
|
2049
|
+
#
|
|
2050
|
+
# uri = URI('https://jsonplaceholder.typicode.com/')
|
|
2051
|
+
# uri.freeze # Examples may not modify.
|
|
2052
|
+
# hostname = uri.hostname # => "jsonplaceholder.typicode.com"
|
|
2053
|
+
# path = uri.path # => "/"
|
|
2054
|
+
# port = uri.port # => 443
|
|
1478
2055
|
#
|
|
1479
|
-
#
|
|
2056
|
+
# So that example requests may be written as:
|
|
2057
|
+
#
|
|
2058
|
+
# Net::HTTP.get(uri)
|
|
2059
|
+
# Net::HTTP.get(hostname, '/index.html')
|
|
2060
|
+
# Net::HTTP.start(hostname) do |http|
|
|
2061
|
+
# http.get('/todos/1')
|
|
2062
|
+
# http.get('/todos/2')
|
|
2063
|
+
# end
|
|
2064
|
+
#
|
|
2065
|
+
# An example that needs a modified URI first duplicates `uri`, then modifies the
|
|
2066
|
+
# duplicate:
|
|
2067
|
+
#
|
|
2068
|
+
# _uri = uri.dup
|
|
2069
|
+
# _uri.path = '/todos/1'
|
|
1480
2070
|
#
|
|
1481
2071
|
class HTTPGenericRequest
|
|
1482
2072
|
include Net::HTTPHeader
|
|
@@ -1488,15 +2078,43 @@ module Net
|
|
|
1488
2078
|
#
|
|
1489
2079
|
def initialize: (String m, boolish reqbody, boolish resbody, URI::Generic | String uri_or_path, ?Hash[String, untyped] initheader) -> Net::HTTP
|
|
1490
2080
|
|
|
2081
|
+
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
2082
|
+
# Returns the string method name for the request:
|
|
2083
|
+
#
|
|
2084
|
+
# Net::HTTP::Get.new(uri).method # => "GET"
|
|
2085
|
+
# Net::HTTP::Post.new(uri).method # => "POST"
|
|
2086
|
+
#
|
|
1491
2087
|
attr_reader method: String
|
|
1492
2088
|
|
|
2089
|
+
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
2090
|
+
# Returns the string path for the request:
|
|
2091
|
+
#
|
|
2092
|
+
# Net::HTTP::Get.new(uri).path # => "/"
|
|
2093
|
+
# Net::HTTP::Post.new('example.com').path # => "example.com"
|
|
2094
|
+
#
|
|
1493
2095
|
attr_reader path: String
|
|
1494
2096
|
|
|
2097
|
+
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
2098
|
+
# Returns the URI object for the request, or `nil` if none:
|
|
2099
|
+
#
|
|
2100
|
+
# Net::HTTP::Get.new(uri).uri
|
|
2101
|
+
# # => #<URI::HTTPS https://jsonplaceholder.typicode.com/>
|
|
2102
|
+
# Net::HTTP::Get.new('example.com').uri # => nil
|
|
2103
|
+
#
|
|
1495
2104
|
attr_reader uri: URI::Generic
|
|
1496
2105
|
|
|
1497
2106
|
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
1498
|
-
#
|
|
1499
|
-
#
|
|
2107
|
+
# Returns `false` if the request's header `'Accept-Encoding'` has been set
|
|
2108
|
+
# manually or deleted (indicating that the user intends to handle encoding in
|
|
2109
|
+
# the response), `true` otherwise:
|
|
2110
|
+
#
|
|
2111
|
+
# req = Net::HTTP::Get.new(uri) # => #<Net::HTTP::Get GET>
|
|
2112
|
+
# req['Accept-Encoding'] # => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
|
|
2113
|
+
# req.decode_content # => true
|
|
2114
|
+
# req['Accept-Encoding'] = 'foo'
|
|
2115
|
+
# req.decode_content # => false
|
|
2116
|
+
# req.delete('Accept-Encoding')
|
|
2117
|
+
# req.decode_content # => false
|
|
1500
2118
|
#
|
|
1501
2119
|
attr_reader decode_content: bool
|
|
1502
2120
|
|
|
@@ -1504,6 +2122,9 @@ module Net
|
|
|
1504
2122
|
# rdoc-file=lib/net/http/generic_request.rb
|
|
1505
2123
|
# - inspect()
|
|
1506
2124
|
# -->
|
|
2125
|
+
# Returns a string representation of the request:
|
|
2126
|
+
#
|
|
2127
|
+
# Net::HTTP::Post.new(uri).inspect # => "#<Net::HTTP::Post POST>"
|
|
1507
2128
|
#
|
|
1508
2129
|
def inspect: () -> String
|
|
1509
2130
|
|
|
@@ -1513,6 +2134,10 @@ module Net
|
|
|
1513
2134
|
# rdoc-file=lib/net/http/generic_request.rb
|
|
1514
2135
|
# - request_body_permitted?()
|
|
1515
2136
|
# -->
|
|
2137
|
+
# Returns whether the request may have a body:
|
|
2138
|
+
#
|
|
2139
|
+
# Net::HTTP::Post.new(uri).request_body_permitted? # => true
|
|
2140
|
+
# Net::HTTP::Get.new(uri).request_body_permitted? # => false
|
|
1516
2141
|
#
|
|
1517
2142
|
def request_body_permitted?: () -> bool
|
|
1518
2143
|
|
|
@@ -1520,6 +2145,10 @@ module Net
|
|
|
1520
2145
|
# rdoc-file=lib/net/http/generic_request.rb
|
|
1521
2146
|
# - response_body_permitted?()
|
|
1522
2147
|
# -->
|
|
2148
|
+
# Returns whether the response may have a body:
|
|
2149
|
+
#
|
|
2150
|
+
# Net::HTTP::Post.new(uri).response_body_permitted? # => true
|
|
2151
|
+
# Net::HTTP::Head.new(uri).response_body_permitted? # => false
|
|
1523
2152
|
#
|
|
1524
2153
|
def response_body_permitted?: () -> bool
|
|
1525
2154
|
|
|
@@ -1530,17 +2159,47 @@ module Net
|
|
|
1530
2159
|
#
|
|
1531
2160
|
def body_exist?: () -> bool
|
|
1532
2161
|
|
|
2162
|
+
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
2163
|
+
# Returns the string body for the request, or `nil` if there is none:
|
|
2164
|
+
#
|
|
2165
|
+
# req = Net::HTTP::Post.new(uri)
|
|
2166
|
+
# req.body # => nil
|
|
2167
|
+
# req.body = '{"title": "foo","body": "bar","userId": 1}'
|
|
2168
|
+
# req.body # => "{\"title\": \"foo\",\"body\": \"bar\",\"userId\": 1}"
|
|
2169
|
+
# ----
|
|
1533
2170
|
# <!--
|
|
1534
2171
|
# rdoc-file=lib/net/http/generic_request.rb
|
|
1535
2172
|
# - body=(str)
|
|
1536
2173
|
# -->
|
|
2174
|
+
# Sets the body for the request:
|
|
2175
|
+
#
|
|
2176
|
+
# req = Net::HTTP::Post.new(uri)
|
|
2177
|
+
# req.body # => nil
|
|
2178
|
+
# req.body = '{"title": "foo","body": "bar","userId": 1}'
|
|
2179
|
+
# req.body # => "{\"title\": \"foo\",\"body\": \"bar\",\"userId\": 1}"
|
|
1537
2180
|
#
|
|
1538
2181
|
attr_accessor body: String?
|
|
1539
2182
|
|
|
2183
|
+
# <!-- rdoc-file=lib/net/http/generic_request.rb -->
|
|
2184
|
+
# Returns the body stream object for the request, or `nil` if there is none:
|
|
2185
|
+
#
|
|
2186
|
+
# req = Net::HTTP::Post.new(uri) # => #<Net::HTTP::Post POST>
|
|
2187
|
+
# req.body_stream # => nil
|
|
2188
|
+
# require 'stringio'
|
|
2189
|
+
# req.body_stream = StringIO.new('xyzzy') # => #<StringIO:0x0000027d1e5affa8>
|
|
2190
|
+
# req.body_stream # => #<StringIO:0x0000027d1e5affa8>
|
|
2191
|
+
# ----
|
|
1540
2192
|
# <!--
|
|
1541
2193
|
# rdoc-file=lib/net/http/generic_request.rb
|
|
1542
2194
|
# - body_stream=(input)
|
|
1543
2195
|
# -->
|
|
2196
|
+
# Sets the body stream for the request:
|
|
2197
|
+
#
|
|
2198
|
+
# req = Net::HTTP::Post.new(uri) # => #<Net::HTTP::Post POST>
|
|
2199
|
+
# req.body_stream # => nil
|
|
2200
|
+
# require 'stringio'
|
|
2201
|
+
# req.body_stream = StringIO.new('xyzzy') # => #<StringIO:0x0000027d1e5affa8>
|
|
2202
|
+
# req.body_stream # => #<StringIO:0x0000027d1e5affa8>
|
|
1544
2203
|
#
|
|
1545
2204
|
attr_accessor body_stream: untyped
|
|
1546
2205
|
end
|
|
@@ -1594,9 +2253,10 @@ module Net
|
|
|
1594
2253
|
#
|
|
1595
2254
|
# Some examples also assume these variables:
|
|
1596
2255
|
#
|
|
1597
|
-
# uri = URI('https://jsonplaceholder.typicode.com')
|
|
2256
|
+
# uri = URI('https://jsonplaceholder.typicode.com/')
|
|
1598
2257
|
# uri.freeze # Examples may not modify.
|
|
1599
2258
|
# hostname = uri.hostname # => "jsonplaceholder.typicode.com"
|
|
2259
|
+
# path = uri.path # => "/"
|
|
1600
2260
|
# port = uri.port # => 443
|
|
1601
2261
|
#
|
|
1602
2262
|
# So that example requests may be written as:
|
|
@@ -2327,18 +2987,37 @@ module Net
|
|
|
2327
2987
|
# rdoc-file=lib/net/http/header.rb
|
|
2328
2988
|
# - set_form_data(params, sep = '&')
|
|
2329
2989
|
# -->
|
|
2330
|
-
#
|
|
2331
|
-
#
|
|
2332
|
-
#
|
|
2990
|
+
# Sets the request body to a URL-encoded string derived from argument `params`,
|
|
2991
|
+
# and sets request header field `'Content-Type'` to
|
|
2992
|
+
# `'application/x-www-form-urlencoded'`.
|
|
2333
2993
|
#
|
|
2334
|
-
#
|
|
2335
|
-
# application/x-www-form-urlencoded
|
|
2994
|
+
# The resulting request is suitable for HTTP request `POST` or `PUT`.
|
|
2336
2995
|
#
|
|
2337
|
-
#
|
|
2996
|
+
# Argument `params` must be suitable for use as argument `enum` to
|
|
2997
|
+
# [URI.encode_www_form](rdoc-ref:URI.encode_www_form).
|
|
2998
|
+
#
|
|
2999
|
+
# With only argument `params` given, sets the body to a URL-encoded string with
|
|
3000
|
+
# the default separator `'&'`:
|
|
3001
|
+
#
|
|
3002
|
+
# req = Net::HTTP::Post.new('example.com')
|
|
3003
|
+
#
|
|
3004
|
+
# req.set_form_data(q: 'ruby', lang: 'en')
|
|
3005
|
+
# req.body # => "q=ruby&lang=en"
|
|
3006
|
+
# req['Content-Type'] # => "application/x-www-form-urlencoded"
|
|
3007
|
+
#
|
|
3008
|
+
# req.set_form_data([['q', 'ruby'], ['lang', 'en']])
|
|
3009
|
+
# req.body # => "q=ruby&lang=en"
|
|
3010
|
+
#
|
|
3011
|
+
# req.set_form_data(q: ['ruby', 'perl'], lang: 'en')
|
|
3012
|
+
# req.body # => "q=ruby&q=perl&lang=en"
|
|
3013
|
+
#
|
|
3014
|
+
# req.set_form_data([['q', 'ruby'], ['q', 'perl'], ['lang', 'en']])
|
|
3015
|
+
# req.body # => "q=ruby&q=perl&lang=en"
|
|
3016
|
+
#
|
|
3017
|
+
# With string argument `sep` also given, uses that string as the separator:
|
|
2338
3018
|
#
|
|
2339
|
-
#
|
|
2340
|
-
#
|
|
2341
|
-
# http.set_form_data({"q" => "ruby", "lang" => "en"}, ';')
|
|
3019
|
+
# req.set_form_data({q: 'ruby', lang: 'en'}, '|')
|
|
3020
|
+
# req.body # => "q=ruby|lang=en"
|
|
2342
3021
|
#
|
|
2343
3022
|
# Net::HTTPHeader#form_data= is an alias for Net::HTTPHeader#set_form_data.
|
|
2344
3023
|
#
|
|
@@ -2355,61 +3034,110 @@ module Net
|
|
|
2355
3034
|
# rdoc-file=lib/net/http/header.rb
|
|
2356
3035
|
# - set_form(params, enctype='application/x-www-form-urlencoded', formopt={})
|
|
2357
3036
|
# -->
|
|
2358
|
-
#
|
|
2359
|
-
# `params`
|
|
2360
|
-
# : The form data to set, which should be an enumerable. See below for more
|
|
2361
|
-
# details.
|
|
2362
|
-
# `enctype`
|
|
2363
|
-
# : The content type to use to encode the form submission, which should be
|
|
2364
|
-
# application/x-www-form-urlencoded or multipart/form-data.
|
|
2365
|
-
# `formopt`
|
|
2366
|
-
# : An options hash, supporting the following options:
|
|
2367
|
-
# :boundary
|
|
2368
|
-
# : The boundary of the multipart message. If not given, a random boundary
|
|
2369
|
-
# will be used.
|
|
2370
|
-
# :charset
|
|
2371
|
-
# : The charset of the form submission. All field names and values of
|
|
2372
|
-
# non-file fields should be encoded with this charset.
|
|
3037
|
+
# Stores form data to be used in a `POST` or `PUT` request.
|
|
2373
3038
|
#
|
|
3039
|
+
# The form data given in `params` consists of zero or more fields; each field
|
|
3040
|
+
# is:
|
|
2374
3041
|
#
|
|
3042
|
+
# * A scalar value.
|
|
3043
|
+
# * A name/value pair.
|
|
3044
|
+
# * An IO stream opened for reading.
|
|
2375
3045
|
#
|
|
2376
|
-
# Each item of params should respond to `each` and yield 2-3 arguments, or an
|
|
2377
|
-
# array of 2-3 elements. The arguments yielded should be:
|
|
2378
3046
|
#
|
|
2379
|
-
#
|
|
2380
|
-
#
|
|
2381
|
-
#
|
|
2382
|
-
# uploads); entries:
|
|
3047
|
+
# Argument `params` should be an
|
|
3048
|
+
# [Enumerable](rdoc-ref:Enumerable@Enumerable+in+Ruby+Classes) (method
|
|
3049
|
+
# `params.map` will be called), and is often an array or hash.
|
|
2383
3050
|
#
|
|
2384
|
-
#
|
|
2385
|
-
# * `:content_type`: The content type of the uploaded file.
|
|
3051
|
+
# First, we set up a request:
|
|
2386
3052
|
#
|
|
3053
|
+
# _uri = uri.dup
|
|
3054
|
+
# _uri.path ='/posts'
|
|
3055
|
+
# req = Net::HTTP::Post.new(_uri)
|
|
2387
3056
|
#
|
|
3057
|
+
# **Argument `params` As an Array**
|
|
2388
3058
|
#
|
|
2389
|
-
#
|
|
2390
|
-
# the
|
|
3059
|
+
# When `params` is an array, each of its elements is a subarray that defines a
|
|
3060
|
+
# field; the subarray may contain:
|
|
2391
3061
|
#
|
|
2392
|
-
#
|
|
2393
|
-
# encoding. Because chunked encoding is HTTP/1.1 feature, you should confirm
|
|
2394
|
-
# that the server supports HTTP/1.1 before using chunked encoding.
|
|
3062
|
+
# * One string:
|
|
2395
3063
|
#
|
|
2396
|
-
#
|
|
3064
|
+
# req.set_form([['foo'], ['bar'], ['baz']])
|
|
3065
|
+
#
|
|
3066
|
+
# * Two strings:
|
|
3067
|
+
#
|
|
3068
|
+
# req.set_form([%w[foo 0], %w[bar 1], %w[baz 2]])
|
|
3069
|
+
#
|
|
3070
|
+
# * When argument `enctype` (see below) is given as `'multipart/form-data'`:
|
|
3071
|
+
#
|
|
3072
|
+
# * A string name and an IO stream opened for reading:
|
|
3073
|
+
#
|
|
3074
|
+
# require 'stringio'
|
|
3075
|
+
# req.set_form([['file', StringIO.new('Ruby is cool.')]])
|
|
3076
|
+
#
|
|
3077
|
+
# * A string name, an IO stream opened for reading, and an options hash,
|
|
3078
|
+
# which may contain these entries:
|
|
3079
|
+
#
|
|
3080
|
+
# * `:filename`: The name of the file to use.
|
|
3081
|
+
# * `:content_type`: The content type of the uploaded file.
|
|
3082
|
+
#
|
|
3083
|
+
#
|
|
3084
|
+
# Example:
|
|
2397
3085
|
#
|
|
2398
|
-
#
|
|
3086
|
+
# req.set_form([['file', file, {filename: "other-filename.foo"}]]
|
|
2399
3087
|
#
|
|
2400
|
-
# req.set_form({"f"=>File.open('/path/to/filename')},
|
|
2401
|
-
# "multipart/form-data",
|
|
2402
|
-
# charset: "UTF-8",
|
|
2403
|
-
# )
|
|
2404
3088
|
#
|
|
2405
|
-
# req.set_form([["f",
|
|
2406
|
-
# File.open('/path/to/filename.bar'),
|
|
2407
|
-
# {filename: "other-filename.foo"}
|
|
2408
|
-
# ]],
|
|
2409
|
-
# "multipart/form-data",
|
|
2410
|
-
# )
|
|
2411
3089
|
#
|
|
2412
|
-
#
|
|
3090
|
+
# The various forms may be mixed:
|
|
3091
|
+
#
|
|
3092
|
+
# req.set_form(['foo', %w[bar 1], ['file', file]])
|
|
3093
|
+
#
|
|
3094
|
+
# **Argument `params` As a Hash**
|
|
3095
|
+
#
|
|
3096
|
+
# When `params` is a hash, each of its entries is a name/value pair that defines
|
|
3097
|
+
# a field:
|
|
3098
|
+
#
|
|
3099
|
+
# * The name is a string.
|
|
3100
|
+
# * The value may be:
|
|
3101
|
+
#
|
|
3102
|
+
# * `nil`.
|
|
3103
|
+
# * Another string.
|
|
3104
|
+
# * An IO stream opened for reading (only when argument `enctype` -- see
|
|
3105
|
+
# below -- is given as `'multipart/form-data'`).
|
|
3106
|
+
#
|
|
3107
|
+
#
|
|
3108
|
+
#
|
|
3109
|
+
# Examples:
|
|
3110
|
+
#
|
|
3111
|
+
# # Nil-valued fields.
|
|
3112
|
+
# req.set_form({'foo' => nil, 'bar' => nil, 'baz' => nil})
|
|
3113
|
+
#
|
|
3114
|
+
# # String-valued fields.
|
|
3115
|
+
# req.set_form({'foo' => 0, 'bar' => 1, 'baz' => 2})
|
|
3116
|
+
#
|
|
3117
|
+
# # IO-valued field.
|
|
3118
|
+
# require 'stringio'
|
|
3119
|
+
# req.set_form({'file' => StringIO.new('Ruby is cool.')})
|
|
3120
|
+
#
|
|
3121
|
+
# # Mixture of fields.
|
|
3122
|
+
# req.set_form({'foo' => nil, 'bar' => 1, 'file' => file})
|
|
3123
|
+
#
|
|
3124
|
+
# Optional argument `enctype` specifies the value to be given to field
|
|
3125
|
+
# `'Content-Type'`, and must be one of:
|
|
3126
|
+
#
|
|
3127
|
+
# * `'application/x-www-form-urlencoded'` (the default).
|
|
3128
|
+
# * `'multipart/form-data'`; see [RFC
|
|
3129
|
+
# 7578](https://www.rfc-editor.org/rfc/rfc7578).
|
|
3130
|
+
#
|
|
3131
|
+
#
|
|
3132
|
+
# Optional argument `formopt` is a hash of options (applicable only when
|
|
3133
|
+
# argument `enctype` is `'multipart/form-data'`) that may include the following
|
|
3134
|
+
# entries:
|
|
3135
|
+
#
|
|
3136
|
+
# * `:boundary`: The value is the boundary string for the multipart message.
|
|
3137
|
+
# If not given, the boundary is a random string. See
|
|
3138
|
+
# [Boundary](https://www.rfc-editor.org/rfc/rfc7578#section-4.1).
|
|
3139
|
+
# * `:charset`: Value is the character set for the form submission. Field
|
|
3140
|
+
# names and values of non-file fields should be encoded with this charset.
|
|
2413
3141
|
#
|
|
2414
3142
|
def set_form: (Hash[untyped, untyped] params, ?String enctype, ?Hash[untyped, untyped] formopt) -> void
|
|
2415
3143
|
|
|
@@ -2417,7 +3145,12 @@ module Net
|
|
|
2417
3145
|
# rdoc-file=lib/net/http/header.rb
|
|
2418
3146
|
# - basic_auth(account, password)
|
|
2419
3147
|
# -->
|
|
2420
|
-
#
|
|
3148
|
+
# Sets header `'Authorization'` using the given `account` and `password`
|
|
3149
|
+
# strings:
|
|
3150
|
+
#
|
|
3151
|
+
# req.basic_auth('my_account', 'my_password')
|
|
3152
|
+
# req['Authorization']
|
|
3153
|
+
# # => "Basic bXlfYWNjb3VudDpteV9wYXNzd29yZA=="
|
|
2421
3154
|
#
|
|
2422
3155
|
def basic_auth: (String account, String password) -> void
|
|
2423
3156
|
|
|
@@ -2425,7 +3158,12 @@ module Net
|
|
|
2425
3158
|
# rdoc-file=lib/net/http/header.rb
|
|
2426
3159
|
# - proxy_basic_auth(account, password)
|
|
2427
3160
|
# -->
|
|
2428
|
-
#
|
|
3161
|
+
# Sets header `'Proxy-Authorization'` using the given `account` and `password`
|
|
3162
|
+
# strings:
|
|
3163
|
+
#
|
|
3164
|
+
# req.proxy_basic_auth('my_account', 'my_password')
|
|
3165
|
+
# req['Proxy-Authorization']
|
|
3166
|
+
# # => "Basic bXlfYWNjb3VudDpteV9wYXNzd29yZA=="
|
|
2429
3167
|
#
|
|
2430
3168
|
def proxy_basic_auth: (String account, String password) -> void
|
|
2431
3169
|
|
|
@@ -2444,6 +3182,7 @@ module Net
|
|
|
2444
3182
|
# rdoc-file=lib/net/http/header.rb
|
|
2445
3183
|
# - connection_close?()
|
|
2446
3184
|
# -->
|
|
3185
|
+
# Returns whether the HTTP session is to be closed.
|
|
2447
3186
|
#
|
|
2448
3187
|
def connection_close?: () -> bool
|
|
2449
3188
|
|
|
@@ -2451,15 +3190,70 @@ module Net
|
|
|
2451
3190
|
# rdoc-file=lib/net/http/header.rb
|
|
2452
3191
|
# - connection_keep_alive?()
|
|
2453
3192
|
# -->
|
|
3193
|
+
# Returns whether the HTTP session is to be kept alive.
|
|
2454
3194
|
#
|
|
2455
3195
|
def connection_keep_alive?: () -> bool
|
|
2456
3196
|
end
|
|
2457
3197
|
|
|
2458
3198
|
# <!-- rdoc-file=lib/net/http/request.rb -->
|
|
2459
|
-
# This class is the base class for Net::HTTP request classes
|
|
2460
|
-
#
|
|
3199
|
+
# This class is the base class for Net::HTTP request classes. The class should
|
|
3200
|
+
# not be used directly; instead you should use its subclasses, listed below.
|
|
3201
|
+
#
|
|
3202
|
+
# ## Creating a Request
|
|
2461
3203
|
#
|
|
2462
|
-
#
|
|
3204
|
+
# An request object may be created with either a URI or a string hostname:
|
|
3205
|
+
#
|
|
3206
|
+
# require 'net/http'
|
|
3207
|
+
# uri = URI('https://jsonplaceholder.typicode.com/')
|
|
3208
|
+
# req = Net::HTTP::Get.new(uri) # => #<Net::HTTP::Get GET>
|
|
3209
|
+
# req = Net::HTTP::Get.new(uri.hostname) # => #<Net::HTTP::Get GET>
|
|
3210
|
+
#
|
|
3211
|
+
# And with any of the subclasses:
|
|
3212
|
+
#
|
|
3213
|
+
# req = Net::HTTP::Head.new(uri) # => #<Net::HTTP::Head HEAD>
|
|
3214
|
+
# req = Net::HTTP::Post.new(uri) # => #<Net::HTTP::Post POST>
|
|
3215
|
+
# req = Net::HTTP::Put.new(uri) # => #<Net::HTTP::Put PUT>
|
|
3216
|
+
# # ...
|
|
3217
|
+
#
|
|
3218
|
+
# The new instance is suitable for use as the argument to Net::HTTP#request.
|
|
3219
|
+
#
|
|
3220
|
+
# ## Request Headers
|
|
3221
|
+
#
|
|
3222
|
+
# A new request object has these header fields by default:
|
|
3223
|
+
#
|
|
3224
|
+
# req.to_hash
|
|
3225
|
+
# # =>
|
|
3226
|
+
# {"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],
|
|
3227
|
+
# "accept"=>["*/*"],
|
|
3228
|
+
# "user-agent"=>["Ruby"],
|
|
3229
|
+
# "host"=>["jsonplaceholder.typicode.com"]}
|
|
3230
|
+
#
|
|
3231
|
+
# See:
|
|
3232
|
+
#
|
|
3233
|
+
# * [Request header
|
|
3234
|
+
# Accept-Encoding](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#
|
|
3235
|
+
# Accept-Encoding) and [Compression and
|
|
3236
|
+
# Decompression](rdoc-ref:Net::HTTP@Compression+and+Decompression).
|
|
3237
|
+
# * [Request header
|
|
3238
|
+
# Accept](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#accept-re
|
|
3239
|
+
# quest-header).
|
|
3240
|
+
# * [Request header
|
|
3241
|
+
# User-Agent](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#user-
|
|
3242
|
+
# agent-request-header).
|
|
3243
|
+
# * [Request header
|
|
3244
|
+
# Host](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#host-reques
|
|
3245
|
+
# t-header).
|
|
3246
|
+
#
|
|
3247
|
+
#
|
|
3248
|
+
# You can add headers or override default headers:
|
|
3249
|
+
#
|
|
3250
|
+
# # res = Net::HTTP::Get.new(uri, {'foo' => '0', 'bar' => '1'})
|
|
3251
|
+
#
|
|
3252
|
+
# This class (and therefore its subclasses) also includes (indirectly) module
|
|
3253
|
+
# Net::HTTPHeader, which gives access to its [methods for setting
|
|
3254
|
+
# headers](rdoc-ref:Net::HTTPHeader@Setters).
|
|
3255
|
+
#
|
|
3256
|
+
# ## Request Subclasses
|
|
2463
3257
|
#
|
|
2464
3258
|
# Subclasses for HTTP requests:
|
|
2465
3259
|
#
|
|
@@ -2511,6 +3305,8 @@ module Net
|
|
|
2511
3305
|
# http.request(req)
|
|
2512
3306
|
# end
|
|
2513
3307
|
#
|
|
3308
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3309
|
+
#
|
|
2514
3310
|
# Properties:
|
|
2515
3311
|
#
|
|
2516
3312
|
# * Request body: optional.
|
|
@@ -2549,6 +3345,8 @@ module Net
|
|
|
2549
3345
|
# http.request(req)
|
|
2550
3346
|
# end
|
|
2551
3347
|
#
|
|
3348
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3349
|
+
#
|
|
2552
3350
|
# Properties:
|
|
2553
3351
|
#
|
|
2554
3352
|
# * Request body: optional.
|
|
@@ -2589,6 +3387,8 @@ module Net
|
|
|
2589
3387
|
# http.request(req)
|
|
2590
3388
|
# end
|
|
2591
3389
|
#
|
|
3390
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3391
|
+
#
|
|
2592
3392
|
# Properties:
|
|
2593
3393
|
#
|
|
2594
3394
|
# * Request body: yes.
|
|
@@ -2630,6 +3430,8 @@ module Net
|
|
|
2630
3430
|
# http.request(req)
|
|
2631
3431
|
# end
|
|
2632
3432
|
#
|
|
3433
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3434
|
+
#
|
|
2633
3435
|
# Properties:
|
|
2634
3436
|
#
|
|
2635
3437
|
# * Request body: yes.
|
|
@@ -2663,6 +3465,8 @@ module Net
|
|
|
2663
3465
|
# http.request(req)
|
|
2664
3466
|
# end
|
|
2665
3467
|
#
|
|
3468
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3469
|
+
#
|
|
2666
3470
|
# Properties:
|
|
2667
3471
|
#
|
|
2668
3472
|
# * Request body: optional.
|
|
@@ -2700,6 +3504,8 @@ module Net
|
|
|
2700
3504
|
# http.request(req)
|
|
2701
3505
|
# end
|
|
2702
3506
|
#
|
|
3507
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3508
|
+
#
|
|
2703
3509
|
# Properties:
|
|
2704
3510
|
#
|
|
2705
3511
|
# * Request body: optional.
|
|
@@ -2737,6 +3543,8 @@ module Net
|
|
|
2737
3543
|
# http.request(req)
|
|
2738
3544
|
# end
|
|
2739
3545
|
#
|
|
3546
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3547
|
+
#
|
|
2740
3548
|
# Properties:
|
|
2741
3549
|
#
|
|
2742
3550
|
# * Request body: no.
|
|
@@ -2777,6 +3585,8 @@ module Net
|
|
|
2777
3585
|
# http.request(req)
|
|
2778
3586
|
# end
|
|
2779
3587
|
#
|
|
3588
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3589
|
+
#
|
|
2780
3590
|
# Properties:
|
|
2781
3591
|
#
|
|
2782
3592
|
# * Request body: yes.
|
|
@@ -2813,6 +3623,8 @@ module Net
|
|
|
2813
3623
|
# http.request(req)
|
|
2814
3624
|
# end
|
|
2815
3625
|
#
|
|
3626
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3627
|
+
#
|
|
2816
3628
|
# Related:
|
|
2817
3629
|
#
|
|
2818
3630
|
# * Net::HTTP#propfind: sends `PROPFIND` request, returns response object.
|
|
@@ -2837,6 +3649,8 @@ module Net
|
|
|
2837
3649
|
# http.request(req)
|
|
2838
3650
|
# end
|
|
2839
3651
|
#
|
|
3652
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3653
|
+
#
|
|
2840
3654
|
# Related:
|
|
2841
3655
|
#
|
|
2842
3656
|
# * Net::HTTP#proppatch: sends `PROPPATCH` request, returns response object.
|
|
@@ -2861,6 +3675,8 @@ module Net
|
|
|
2861
3675
|
# http.request(req)
|
|
2862
3676
|
# end
|
|
2863
3677
|
#
|
|
3678
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3679
|
+
#
|
|
2864
3680
|
# Related:
|
|
2865
3681
|
#
|
|
2866
3682
|
# * Net::HTTP#mkcol: sends `MKCOL` request, returns response object.
|
|
@@ -2885,6 +3701,8 @@ module Net
|
|
|
2885
3701
|
# http.request(req)
|
|
2886
3702
|
# end
|
|
2887
3703
|
#
|
|
3704
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3705
|
+
#
|
|
2888
3706
|
# Related:
|
|
2889
3707
|
#
|
|
2890
3708
|
# * Net::HTTP#copy: sends `COPY` request, returns response object.
|
|
@@ -2909,6 +3727,8 @@ module Net
|
|
|
2909
3727
|
# http.request(req)
|
|
2910
3728
|
# end
|
|
2911
3729
|
#
|
|
3730
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3731
|
+
#
|
|
2912
3732
|
# Related:
|
|
2913
3733
|
#
|
|
2914
3734
|
# * Net::HTTP#move: sends `MOVE` request, returns response object.
|
|
@@ -2933,6 +3753,8 @@ module Net
|
|
|
2933
3753
|
# http.request(req)
|
|
2934
3754
|
# end
|
|
2935
3755
|
#
|
|
3756
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3757
|
+
#
|
|
2936
3758
|
# Related:
|
|
2937
3759
|
#
|
|
2938
3760
|
# * Net::HTTP#lock: sends `LOCK` request, returns response object.
|
|
@@ -2957,6 +3779,8 @@ module Net
|
|
|
2957
3779
|
# http.request(req)
|
|
2958
3780
|
# end
|
|
2959
3781
|
#
|
|
3782
|
+
# See [Request Headers](rdoc-ref:Net::HTTPRequest@Request+Headers).
|
|
3783
|
+
#
|
|
2960
3784
|
# Related:
|
|
2961
3785
|
#
|
|
2962
3786
|
# * Net::HTTP#unlock: sends `UNLOCK` request, returns response object.
|
|
@@ -2970,7 +3794,7 @@ module Net
|
|
|
2970
3794
|
end
|
|
2971
3795
|
|
|
2972
3796
|
# <!-- rdoc-file=lib/net/http/response.rb -->
|
|
2973
|
-
# This class is the base class for Net::HTTP
|
|
3797
|
+
# This class is the base class for Net::HTTP response classes.
|
|
2974
3798
|
#
|
|
2975
3799
|
# ## About the Examples
|
|
2976
3800
|
#
|
|
@@ -2987,9 +3811,10 @@ module Net
|
|
|
2987
3811
|
#
|
|
2988
3812
|
# Some examples also assume these variables:
|
|
2989
3813
|
#
|
|
2990
|
-
# uri = URI('https://jsonplaceholder.typicode.com')
|
|
3814
|
+
# uri = URI('https://jsonplaceholder.typicode.com/')
|
|
2991
3815
|
# uri.freeze # Examples may not modify.
|
|
2992
3816
|
# hostname = uri.hostname # => "jsonplaceholder.typicode.com"
|
|
3817
|
+
# path = uri.path # => "/"
|
|
2993
3818
|
# port = uri.port # => 443
|
|
2994
3819
|
#
|
|
2995
3820
|
# So that example requests may be written as:
|
|
@@ -3254,19 +4079,20 @@ module Net
|
|
|
3254
4079
|
# rdoc-file=lib/net/http/response.rb
|
|
3255
4080
|
# - body()
|
|
3256
4081
|
# -->
|
|
3257
|
-
# Returns the
|
|
4082
|
+
# Returns the string response body; note that repeated calls for the unmodified
|
|
4083
|
+
# body return a cached string:
|
|
3258
4084
|
#
|
|
3259
|
-
#
|
|
3260
|
-
#
|
|
4085
|
+
# path = '/todos/1'
|
|
4086
|
+
# Net::HTTP.start(hostname) do |http|
|
|
4087
|
+
# res = http.get(path)
|
|
4088
|
+
# p res.body
|
|
4089
|
+
# p http.head(path).body # No body.
|
|
4090
|
+
# end
|
|
3261
4091
|
#
|
|
3262
|
-
#
|
|
3263
|
-
# puts res.body
|
|
3264
|
-
# }
|
|
4092
|
+
# Output:
|
|
3265
4093
|
#
|
|
3266
|
-
#
|
|
3267
|
-
#
|
|
3268
|
-
# p res.body.object_id # 538149362
|
|
3269
|
-
# }
|
|
4094
|
+
# "{\n \"userId\": 1,\n \"id\": 1,\n \"title\": \"delectus aut autem\",\n \"completed\": false\n}"
|
|
4095
|
+
# nil
|
|
3270
4096
|
#
|
|
3271
4097
|
def body: () -> String
|
|
3272
4098
|
|
|
@@ -3274,8 +4100,7 @@ module Net
|
|
|
3274
4100
|
# rdoc-file=lib/net/http/response.rb
|
|
3275
4101
|
# - body=(value)
|
|
3276
4102
|
# -->
|
|
3277
|
-
#
|
|
3278
|
-
# facilitates that.
|
|
4103
|
+
# Sets the body of the response to the given value.
|
|
3279
4104
|
#
|
|
3280
4105
|
def body=: (untyped value) -> void
|
|
3281
4106
|
|
|
@@ -3387,6 +4212,9 @@ module Net
|
|
|
3387
4212
|
# A `Continue` response indicates that the server has received the request
|
|
3388
4213
|
# headers.
|
|
3389
4214
|
#
|
|
4215
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4216
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4217
|
+
#
|
|
3390
4218
|
# References:
|
|
3391
4219
|
#
|
|
3392
4220
|
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/100).
|
|
@@ -3403,6 +4231,9 @@ module Net
|
|
|
3403
4231
|
# The <tt>Switching Protocol<tt> response indicates that the server has received
|
|
3404
4232
|
# a request to switch protocols, and has agreed to do so.
|
|
3405
4233
|
#
|
|
4234
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4235
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4236
|
+
#
|
|
3406
4237
|
# References:
|
|
3407
4238
|
#
|
|
3408
4239
|
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/101).
|
|
@@ -3421,8 +4252,12 @@ module Net
|
|
|
3421
4252
|
# The `Processing` response indicates that the server has received and is
|
|
3422
4253
|
# processing the request, but no response is available yet.
|
|
3423
4254
|
#
|
|
4255
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4256
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4257
|
+
#
|
|
3424
4258
|
# References:
|
|
3425
4259
|
#
|
|
4260
|
+
# * [RFC 2518](https://www.rfc-editor.org/rfc/rfc2518#section-10.1).
|
|
3426
4261
|
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#102).
|
|
3427
4262
|
#
|
|
3428
4263
|
class HTTPProcessing < HTTPInformation
|
|
@@ -3436,9 +4271,13 @@ module Net
|
|
|
3436
4271
|
# request, and contains certain headers; the final response is not available
|
|
3437
4272
|
# yet.
|
|
3438
4273
|
#
|
|
4274
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4275
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4276
|
+
#
|
|
3439
4277
|
# References:
|
|
3440
4278
|
#
|
|
3441
4279
|
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/103).
|
|
4280
|
+
# * [RFC 8297](https://www.rfc-editor.org/rfc/rfc8297.html#section-2).
|
|
3442
4281
|
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#103).
|
|
3443
4282
|
#
|
|
3444
4283
|
class HTTPEarlyHints < HTTPInformation
|
|
@@ -3449,8 +4288,16 @@ module Net
|
|
|
3449
4288
|
# Response class for `OK` responses (status code 200).
|
|
3450
4289
|
#
|
|
3451
4290
|
# The `OK` response indicates that the server has received a request and has
|
|
3452
|
-
# responded successfully.
|
|
3453
|
-
#
|
|
4291
|
+
# responded successfully.
|
|
4292
|
+
#
|
|
4293
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4294
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4295
|
+
#
|
|
4296
|
+
# References:
|
|
4297
|
+
#
|
|
4298
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/200).
|
|
4299
|
+
# * [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok).
|
|
4300
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#200).
|
|
3454
4301
|
#
|
|
3455
4302
|
class HTTPOK < HTTPSuccess
|
|
3456
4303
|
HAS_BODY: bool
|
|
@@ -3460,8 +4307,16 @@ module Net
|
|
|
3460
4307
|
# Response class for `Created` responses (status code 201).
|
|
3461
4308
|
#
|
|
3462
4309
|
# The `Created` response indicates that the server has received and has
|
|
3463
|
-
# fulfilled a request to create a new resource.
|
|
3464
|
-
#
|
|
4310
|
+
# fulfilled a request to create a new resource.
|
|
4311
|
+
#
|
|
4312
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4313
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4314
|
+
#
|
|
4315
|
+
# References:
|
|
4316
|
+
#
|
|
4317
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/201).
|
|
4318
|
+
# * [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-201-created).
|
|
4319
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#201).
|
|
3465
4320
|
#
|
|
3466
4321
|
class HTTPCreated < HTTPSuccess
|
|
3467
4322
|
HAS_BODY: bool
|
|
@@ -3471,8 +4326,16 @@ module Net
|
|
|
3471
4326
|
# Response class for `Accepted` responses (status code 202).
|
|
3472
4327
|
#
|
|
3473
4328
|
# The `Accepted` response indicates that the server has received and is
|
|
3474
|
-
# processing a request, but the processing has not yet been completed.
|
|
3475
|
-
#
|
|
4329
|
+
# processing a request, but the processing has not yet been completed.
|
|
4330
|
+
#
|
|
4331
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4332
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4333
|
+
#
|
|
4334
|
+
# References:
|
|
4335
|
+
#
|
|
4336
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/202).
|
|
4337
|
+
# * [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-202-accepted).
|
|
4338
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#202).
|
|
3476
4339
|
#
|
|
3477
4340
|
class HTTPAccepted < HTTPSuccess
|
|
3478
4341
|
HAS_BODY: bool
|
|
@@ -3485,8 +4348,17 @@ module Net
|
|
|
3485
4348
|
# The `Non-Authoritative Information` response indicates that the server is a
|
|
3486
4349
|
# transforming proxy (such as a Web accelerator) that received a 200 OK response
|
|
3487
4350
|
# from its origin, and is returning a modified version of the origin's response.
|
|
3488
|
-
#
|
|
3489
|
-
#
|
|
4351
|
+
#
|
|
4352
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4353
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4354
|
+
#
|
|
4355
|
+
# References:
|
|
4356
|
+
#
|
|
4357
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/203).
|
|
4358
|
+
# * [RFC
|
|
4359
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-203-non-authoritati
|
|
4360
|
+
# ve-infor).
|
|
4361
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#203).
|
|
3490
4362
|
#
|
|
3491
4363
|
class HTTPNonAuthoritativeInformation < HTTPSuccess
|
|
3492
4364
|
HAS_BODY: bool
|
|
@@ -3496,8 +4368,17 @@ module Net
|
|
|
3496
4368
|
# Response class for `No Content` responses (status code 204).
|
|
3497
4369
|
#
|
|
3498
4370
|
# The `No Content` response indicates that the server successfully processed the
|
|
3499
|
-
# request, and is not returning any content.
|
|
3500
|
-
#
|
|
4371
|
+
# request, and is not returning any content.
|
|
4372
|
+
#
|
|
4373
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4374
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4375
|
+
#
|
|
4376
|
+
# References:
|
|
4377
|
+
#
|
|
4378
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/204).
|
|
4379
|
+
# * [RFC
|
|
4380
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-204-no-content).
|
|
4381
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#204).
|
|
3501
4382
|
#
|
|
3502
4383
|
class HTTPNoContent < HTTPSuccess
|
|
3503
4384
|
HAS_BODY: bool
|
|
@@ -3508,8 +4389,17 @@ module Net
|
|
|
3508
4389
|
#
|
|
3509
4390
|
# The `Reset Content` response indicates that the server successfully processed
|
|
3510
4391
|
# the request, asks that the client reset its document view, and is not
|
|
3511
|
-
# returning any content.
|
|
3512
|
-
#
|
|
4392
|
+
# returning any content.
|
|
4393
|
+
#
|
|
4394
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4395
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4396
|
+
#
|
|
4397
|
+
# References:
|
|
4398
|
+
#
|
|
4399
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/205).
|
|
4400
|
+
# * [RFC
|
|
4401
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-205-reset-content).
|
|
4402
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#205).
|
|
3513
4403
|
#
|
|
3514
4404
|
class HTTPResetContent < HTTPSuccess
|
|
3515
4405
|
HAS_BODY: bool
|
|
@@ -3519,9 +4409,18 @@ module Net
|
|
|
3519
4409
|
# Response class for `Partial Content` responses (status code 206).
|
|
3520
4410
|
#
|
|
3521
4411
|
# The `Partial Content` response indicates that the server is delivering only
|
|
3522
|
-
# part of the resource (byte serving) due to a Range header in the request.
|
|
3523
|
-
#
|
|
3524
|
-
#
|
|
4412
|
+
# part of the resource (byte serving) due to a Range header in the request.
|
|
4413
|
+
#
|
|
4414
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4415
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4416
|
+
#
|
|
4417
|
+
# References:
|
|
4418
|
+
#
|
|
4419
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206).
|
|
4420
|
+
# * [RFC
|
|
4421
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-206-partial-content
|
|
4422
|
+
# ).
|
|
4423
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#206).
|
|
3525
4424
|
#
|
|
3526
4425
|
class HTTPPartialContent < HTTPSuccess
|
|
3527
4426
|
HAS_BODY: bool
|
|
@@ -3532,8 +4431,15 @@ module Net
|
|
|
3532
4431
|
#
|
|
3533
4432
|
# The `Multi-Status (WebDAV)` response indicates that the server has received
|
|
3534
4433
|
# the request, and that the message body can contain a number of separate
|
|
3535
|
-
# response codes.
|
|
3536
|
-
#
|
|
4434
|
+
# response codes.
|
|
4435
|
+
#
|
|
4436
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4437
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4438
|
+
#
|
|
4439
|
+
# References:
|
|
4440
|
+
#
|
|
4441
|
+
# * [RFC 4818](https://www.rfc-editor.org/rfc/rfc4918#section-11.1).
|
|
4442
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#207).
|
|
3537
4443
|
#
|
|
3538
4444
|
class HTTPMultiStatus < HTTPSuccess
|
|
3539
4445
|
HAS_BODY: bool
|
|
@@ -3545,8 +4451,15 @@ module Net
|
|
|
3545
4451
|
# The `Already Reported (WebDAV)` response indicates that the server has
|
|
3546
4452
|
# received the request, and that the members of a DAV binding have already been
|
|
3547
4453
|
# enumerated in a preceding part of the (multi-status) response, and are not
|
|
3548
|
-
# being included again.
|
|
3549
|
-
#
|
|
4454
|
+
# being included again.
|
|
4455
|
+
#
|
|
4456
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4457
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4458
|
+
#
|
|
4459
|
+
# References:
|
|
4460
|
+
#
|
|
4461
|
+
# * [RFC 5842](https://www.rfc-editor.org/rfc/rfc5842.html#section-7.1).
|
|
4462
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#208).
|
|
3550
4463
|
#
|
|
3551
4464
|
class HTTPAlreadyReported < HTTPSuccess
|
|
3552
4465
|
HAS_BODY: bool
|
|
@@ -3557,8 +4470,15 @@ module Net
|
|
|
3557
4470
|
#
|
|
3558
4471
|
# The `IM Used` response indicates that the server has fulfilled a request for
|
|
3559
4472
|
# the resource, and the response is a representation of the result of one or
|
|
3560
|
-
# more instance-manipulations applied to the current instance.
|
|
3561
|
-
#
|
|
4473
|
+
# more instance-manipulations applied to the current instance.
|
|
4474
|
+
#
|
|
4475
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4476
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4477
|
+
#
|
|
4478
|
+
# References:
|
|
4479
|
+
#
|
|
4480
|
+
# * [RFC 3229](https://www.rfc-editor.org/rfc/rfc3229.html#section-10.4.1).
|
|
4481
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#226).
|
|
3562
4482
|
#
|
|
3563
4483
|
class HTTPIMUsed < HTTPSuccess
|
|
3564
4484
|
HAS_BODY: bool
|
|
@@ -3568,8 +4488,18 @@ module Net
|
|
|
3568
4488
|
# Response class for `Multiple Choices` responses (status code 300).
|
|
3569
4489
|
#
|
|
3570
4490
|
# The `Multiple Choices` response indicates that the server offers multiple
|
|
3571
|
-
# options for the resource from which the client may choose.
|
|
3572
|
-
#
|
|
4491
|
+
# options for the resource from which the client may choose.
|
|
4492
|
+
#
|
|
4493
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4494
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4495
|
+
#
|
|
4496
|
+
# References:
|
|
4497
|
+
#
|
|
4498
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/300).
|
|
4499
|
+
# * [RFC
|
|
4500
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-300-multiple-choice
|
|
4501
|
+
# s).
|
|
4502
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#300).
|
|
3573
4503
|
#
|
|
3574
4504
|
class HTTPMultipleChoices < HTTPRedirection
|
|
3575
4505
|
HAS_BODY: bool
|
|
@@ -3579,8 +4509,18 @@ module Net
|
|
|
3579
4509
|
# Response class for `Multiple Choices` responses (status code 300).
|
|
3580
4510
|
#
|
|
3581
4511
|
# The `Multiple Choices` response indicates that the server offers multiple
|
|
3582
|
-
# options for the resource from which the client may choose.
|
|
3583
|
-
#
|
|
4512
|
+
# options for the resource from which the client may choose.
|
|
4513
|
+
#
|
|
4514
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4515
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4516
|
+
#
|
|
4517
|
+
# References:
|
|
4518
|
+
#
|
|
4519
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/300).
|
|
4520
|
+
# * [RFC
|
|
4521
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-300-multiple-choice
|
|
4522
|
+
# s).
|
|
4523
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#300).
|
|
3584
4524
|
#
|
|
3585
4525
|
HTTPMultipleChoice: HTTPMultipleChoices
|
|
3586
4526
|
|
|
@@ -3588,8 +4528,18 @@ module Net
|
|
|
3588
4528
|
# Response class for `Moved Permanently` responses (status code 301).
|
|
3589
4529
|
#
|
|
3590
4530
|
# The `Moved Permanently` response indicates that links or records returning
|
|
3591
|
-
# this response should be updated to use the given URL.
|
|
3592
|
-
#
|
|
4531
|
+
# this response should be updated to use the given URL.
|
|
4532
|
+
#
|
|
4533
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4534
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4535
|
+
#
|
|
4536
|
+
# References:
|
|
4537
|
+
#
|
|
4538
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/301).
|
|
4539
|
+
# * [RFC
|
|
4540
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-301-moved-permanent
|
|
4541
|
+
# ly).
|
|
4542
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#301).
|
|
3593
4543
|
#
|
|
3594
4544
|
class HTTPMovedPermanently < HTTPRedirection
|
|
3595
4545
|
HAS_BODY: bool
|
|
@@ -3599,8 +4549,16 @@ module Net
|
|
|
3599
4549
|
# Response class for `Found` responses (status code 302).
|
|
3600
4550
|
#
|
|
3601
4551
|
# The `Found` response indicates that the client should look at (browse to)
|
|
3602
|
-
# another URL.
|
|
3603
|
-
#
|
|
4552
|
+
# another URL.
|
|
4553
|
+
#
|
|
4554
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4555
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4556
|
+
#
|
|
4557
|
+
# References:
|
|
4558
|
+
#
|
|
4559
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302).
|
|
4560
|
+
# * [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-302-found).
|
|
4561
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#302).
|
|
3604
4562
|
#
|
|
3605
4563
|
class HTTPFound < HTTPRedirection
|
|
3606
4564
|
HAS_BODY: bool
|
|
@@ -3610,8 +4568,17 @@ module Net
|
|
|
3610
4568
|
# Response class for `See Other` responses (status code 303).
|
|
3611
4569
|
#
|
|
3612
4570
|
# The response to the request can be found under another URI using the GET
|
|
3613
|
-
# method.
|
|
3614
|
-
#
|
|
4571
|
+
# method.
|
|
4572
|
+
#
|
|
4573
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4574
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4575
|
+
#
|
|
4576
|
+
# References:
|
|
4577
|
+
#
|
|
4578
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/303).
|
|
4579
|
+
# * [RFC
|
|
4580
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-303-see-other).
|
|
4581
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#303).
|
|
3615
4582
|
#
|
|
3616
4583
|
class HTTPSeeOther < HTTPRedirection
|
|
3617
4584
|
HAS_BODY: bool
|
|
@@ -3621,8 +4588,17 @@ module Net
|
|
|
3621
4588
|
# Response class for `Not Modified` responses (status code 304).
|
|
3622
4589
|
#
|
|
3623
4590
|
# Indicates that the resource has not been modified since the version specified
|
|
3624
|
-
# by the request headers.
|
|
3625
|
-
#
|
|
4591
|
+
# by the request headers.
|
|
4592
|
+
#
|
|
4593
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4594
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4595
|
+
#
|
|
4596
|
+
# References:
|
|
4597
|
+
#
|
|
4598
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304).
|
|
4599
|
+
# * [RFC
|
|
4600
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-304-not-modified).
|
|
4601
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#304).
|
|
3626
4602
|
#
|
|
3627
4603
|
class HTTPNotModified < HTTPRedirection
|
|
3628
4604
|
HAS_BODY: bool
|
|
@@ -3632,8 +4608,16 @@ module Net
|
|
|
3632
4608
|
# Response class for `Use Proxy` responses (status code 305).
|
|
3633
4609
|
#
|
|
3634
4610
|
# The requested resource is available only through a proxy, whose address is
|
|
3635
|
-
# provided in the response.
|
|
3636
|
-
#
|
|
4611
|
+
# provided in the response.
|
|
4612
|
+
#
|
|
4613
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4614
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4615
|
+
#
|
|
4616
|
+
# References:
|
|
4617
|
+
#
|
|
4618
|
+
# * [RFC
|
|
4619
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-305-use-proxy).
|
|
4620
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#305).
|
|
3637
4621
|
#
|
|
3638
4622
|
class HTTPUseProxy < HTTPRedirection
|
|
3639
4623
|
HAS_BODY: bool
|
|
@@ -3643,8 +4627,18 @@ module Net
|
|
|
3643
4627
|
# Response class for `Temporary Redirect` responses (status code 307).
|
|
3644
4628
|
#
|
|
3645
4629
|
# The request should be repeated with another URI; however, future requests
|
|
3646
|
-
# should still use the original URI.
|
|
3647
|
-
#
|
|
4630
|
+
# should still use the original URI.
|
|
4631
|
+
#
|
|
4632
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4633
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4634
|
+
#
|
|
4635
|
+
# References:
|
|
4636
|
+
#
|
|
4637
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307).
|
|
4638
|
+
# * [RFC
|
|
4639
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-307-temporary-redir
|
|
4640
|
+
# ect).
|
|
4641
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#307).
|
|
3648
4642
|
#
|
|
3649
4643
|
class HTTPTemporaryRedirect < HTTPRedirection
|
|
3650
4644
|
HAS_BODY: bool
|
|
@@ -3653,9 +4647,18 @@ module Net
|
|
|
3653
4647
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3654
4648
|
# Response class for `Permanent Redirect` responses (status code 308).
|
|
3655
4649
|
#
|
|
3656
|
-
# This and all future requests should be directed to the given URI.
|
|
3657
|
-
#
|
|
3658
|
-
#
|
|
4650
|
+
# This and all future requests should be directed to the given URI.
|
|
4651
|
+
#
|
|
4652
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4653
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4654
|
+
#
|
|
4655
|
+
# References:
|
|
4656
|
+
#
|
|
4657
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308).
|
|
4658
|
+
# * [RFC
|
|
4659
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-308-permanent-redir
|
|
4660
|
+
# ect).
|
|
4661
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#308).
|
|
3659
4662
|
#
|
|
3660
4663
|
class HTTPPermanentRedirect < HTTPRedirection
|
|
3661
4664
|
HAS_BODY: bool
|
|
@@ -3665,8 +4668,17 @@ module Net
|
|
|
3665
4668
|
# Response class for `Bad Request` responses (status code 400).
|
|
3666
4669
|
#
|
|
3667
4670
|
# The server cannot or will not process the request due to an apparent client
|
|
3668
|
-
# error.
|
|
3669
|
-
#
|
|
4671
|
+
# error.
|
|
4672
|
+
#
|
|
4673
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4674
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4675
|
+
#
|
|
4676
|
+
# References:
|
|
4677
|
+
#
|
|
4678
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400).
|
|
4679
|
+
# * [RFC
|
|
4680
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request).
|
|
4681
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#400).
|
|
3670
4682
|
#
|
|
3671
4683
|
class HTTPBadRequest < HTTPClientError
|
|
3672
4684
|
HAS_BODY: bool
|
|
@@ -3675,8 +4687,17 @@ module Net
|
|
|
3675
4687
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3676
4688
|
# Response class for `Unauthorized` responses (status code 401).
|
|
3677
4689
|
#
|
|
3678
|
-
# Authentication is required, but either was not provided or failed.
|
|
3679
|
-
#
|
|
4690
|
+
# Authentication is required, but either was not provided or failed.
|
|
4691
|
+
#
|
|
4692
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4693
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4694
|
+
#
|
|
4695
|
+
# References:
|
|
4696
|
+
#
|
|
4697
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401).
|
|
4698
|
+
# * [RFC
|
|
4699
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized).
|
|
4700
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#401).
|
|
3680
4701
|
#
|
|
3681
4702
|
class HTTPUnauthorized < HTTPClientError
|
|
3682
4703
|
HAS_BODY: bool
|
|
@@ -3685,8 +4706,18 @@ module Net
|
|
|
3685
4706
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3686
4707
|
# Response class for `Payment Required` responses (status code 402).
|
|
3687
4708
|
#
|
|
3688
|
-
# Reserved for future use.
|
|
3689
|
-
#
|
|
4709
|
+
# Reserved for future use.
|
|
4710
|
+
#
|
|
4711
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4712
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4713
|
+
#
|
|
4714
|
+
# References:
|
|
4715
|
+
#
|
|
4716
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402).
|
|
4717
|
+
# * [RFC
|
|
4718
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-402-payment-require
|
|
4719
|
+
# d).
|
|
4720
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#402).
|
|
3690
4721
|
#
|
|
3691
4722
|
class HTTPPaymentRequired < HTTPClientError
|
|
3692
4723
|
HAS_BODY: bool
|
|
@@ -3696,8 +4727,17 @@ module Net
|
|
|
3696
4727
|
# Response class for `Forbidden` responses (status code 403).
|
|
3697
4728
|
#
|
|
3698
4729
|
# The request contained valid data and was understood by the server, but the
|
|
3699
|
-
# server is refusing action.
|
|
3700
|
-
#
|
|
4730
|
+
# server is refusing action.
|
|
4731
|
+
#
|
|
4732
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4733
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4734
|
+
#
|
|
4735
|
+
# References:
|
|
4736
|
+
#
|
|
4737
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403).
|
|
4738
|
+
# * [RFC
|
|
4739
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-403-forbidden).
|
|
4740
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#403).
|
|
3701
4741
|
#
|
|
3702
4742
|
class HTTPForbidden < HTTPClientError
|
|
3703
4743
|
HAS_BODY: bool
|
|
@@ -3707,8 +4747,16 @@ module Net
|
|
|
3707
4747
|
# Response class for `Not Found` responses (status code 404).
|
|
3708
4748
|
#
|
|
3709
4749
|
# The requested resource could not be found but may be available in the future.
|
|
3710
|
-
#
|
|
3711
|
-
#
|
|
4750
|
+
#
|
|
4751
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4752
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4753
|
+
#
|
|
4754
|
+
# References:
|
|
4755
|
+
#
|
|
4756
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404).
|
|
4757
|
+
# * [RFC
|
|
4758
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found).
|
|
4759
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#404).
|
|
3712
4760
|
#
|
|
3713
4761
|
class HTTPNotFound < HTTPClientError
|
|
3714
4762
|
HAS_BODY: bool
|
|
@@ -3717,9 +4765,18 @@ module Net
|
|
|
3717
4765
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3718
4766
|
# Response class for `Method Not Allowed` responses (status code 405).
|
|
3719
4767
|
#
|
|
3720
|
-
# The request method is not supported for the requested resource.
|
|
3721
|
-
#
|
|
3722
|
-
#
|
|
4768
|
+
# The request method is not supported for the requested resource.
|
|
4769
|
+
#
|
|
4770
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4771
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4772
|
+
#
|
|
4773
|
+
# References:
|
|
4774
|
+
#
|
|
4775
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405).
|
|
4776
|
+
# * [RFC
|
|
4777
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-405-method-not-allo
|
|
4778
|
+
# wed).
|
|
4779
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#405).
|
|
3723
4780
|
#
|
|
3724
4781
|
class HTTPMethodNotAllowed < HTTPClientError
|
|
3725
4782
|
HAS_BODY: bool
|
|
@@ -3729,8 +4786,18 @@ module Net
|
|
|
3729
4786
|
# Response class for `Not Acceptable` responses (status code 406).
|
|
3730
4787
|
#
|
|
3731
4788
|
# The requested resource is capable of generating only content that not
|
|
3732
|
-
# acceptable according to the Accept headers sent in the request.
|
|
3733
|
-
#
|
|
4789
|
+
# acceptable according to the Accept headers sent in the request.
|
|
4790
|
+
#
|
|
4791
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4792
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4793
|
+
#
|
|
4794
|
+
# References:
|
|
4795
|
+
#
|
|
4796
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/406).
|
|
4797
|
+
# * [RFC
|
|
4798
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-406-not-acceptable)
|
|
4799
|
+
# .
|
|
4800
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#406).
|
|
3734
4801
|
#
|
|
3735
4802
|
class HTTPNotAcceptable < HTTPClientError
|
|
3736
4803
|
HAS_BODY: bool
|
|
@@ -3740,9 +4807,18 @@ module Net
|
|
|
3740
4807
|
# Response class for `Proxy Authentication Required` responses (status code
|
|
3741
4808
|
# 407).
|
|
3742
4809
|
#
|
|
3743
|
-
# The client must first authenticate itself with the proxy.
|
|
3744
|
-
#
|
|
3745
|
-
#
|
|
4810
|
+
# The client must first authenticate itself with the proxy.
|
|
4811
|
+
#
|
|
4812
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4813
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4814
|
+
#
|
|
4815
|
+
# References:
|
|
4816
|
+
#
|
|
4817
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/407).
|
|
4818
|
+
# * [RFC
|
|
4819
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-407-proxy-authentic
|
|
4820
|
+
# ation-re).
|
|
4821
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#407).
|
|
3746
4822
|
#
|
|
3747
4823
|
class HTTPProxyAuthenticationRequired < HTTPClientError
|
|
3748
4824
|
HAS_BODY: bool
|
|
@@ -3751,8 +4827,18 @@ module Net
|
|
|
3751
4827
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3752
4828
|
# Response class for `Request Timeout` responses (status code 408).
|
|
3753
4829
|
#
|
|
3754
|
-
# The server timed out waiting for the request.
|
|
3755
|
-
#
|
|
4830
|
+
# The server timed out waiting for the request.
|
|
4831
|
+
#
|
|
4832
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4833
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4834
|
+
#
|
|
4835
|
+
# References:
|
|
4836
|
+
#
|
|
4837
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408).
|
|
4838
|
+
# * [RFC
|
|
4839
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-408-request-timeout
|
|
4840
|
+
# ).
|
|
4841
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#408).
|
|
3756
4842
|
#
|
|
3757
4843
|
class HTTPRequestTimeout < HTTPClientError
|
|
3758
4844
|
HAS_BODY: bool
|
|
@@ -3762,8 +4848,16 @@ module Net
|
|
|
3762
4848
|
# Response class for `Conflict` responses (status code 409).
|
|
3763
4849
|
#
|
|
3764
4850
|
# The request could not be processed because of conflict in the current state of
|
|
3765
|
-
# the resource.
|
|
3766
|
-
#
|
|
4851
|
+
# the resource.
|
|
4852
|
+
#
|
|
4853
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4854
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4855
|
+
#
|
|
4856
|
+
# References:
|
|
4857
|
+
#
|
|
4858
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409).
|
|
4859
|
+
# * [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-409-conflict).
|
|
4860
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#409).
|
|
3767
4861
|
#
|
|
3768
4862
|
class HTTPConflict < HTTPClientError
|
|
3769
4863
|
HAS_BODY: bool
|
|
@@ -3773,8 +4867,16 @@ module Net
|
|
|
3773
4867
|
# Response class for `Gone` responses (status code 410).
|
|
3774
4868
|
#
|
|
3775
4869
|
# The resource requested was previously in use but is no longer available and
|
|
3776
|
-
# will not be available again.
|
|
3777
|
-
#
|
|
4870
|
+
# will not be available again.
|
|
4871
|
+
#
|
|
4872
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4873
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4874
|
+
#
|
|
4875
|
+
# References:
|
|
4876
|
+
#
|
|
4877
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410).
|
|
4878
|
+
# * [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-410-gone).
|
|
4879
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#410).
|
|
3778
4880
|
#
|
|
3779
4881
|
class HTTPGone < HTTPClientError
|
|
3780
4882
|
HAS_BODY: bool
|
|
@@ -3784,8 +4886,18 @@ module Net
|
|
|
3784
4886
|
# Response class for `Length Required` responses (status code 411).
|
|
3785
4887
|
#
|
|
3786
4888
|
# The request did not specify the length of its content, which is required by
|
|
3787
|
-
# the requested resource.
|
|
3788
|
-
#
|
|
4889
|
+
# the requested resource.
|
|
4890
|
+
#
|
|
4891
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4892
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4893
|
+
#
|
|
4894
|
+
# References:
|
|
4895
|
+
#
|
|
4896
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411).
|
|
4897
|
+
# * [RFC
|
|
4898
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-411-length-required
|
|
4899
|
+
# ).
|
|
4900
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#411).
|
|
3789
4901
|
#
|
|
3790
4902
|
class HTTPLengthRequired < HTTPClientError
|
|
3791
4903
|
HAS_BODY: bool
|
|
@@ -3795,8 +4907,18 @@ module Net
|
|
|
3795
4907
|
# Response class for `Precondition Failed` responses (status code 412).
|
|
3796
4908
|
#
|
|
3797
4909
|
# The server does not meet one of the preconditions specified in the request
|
|
3798
|
-
# headers.
|
|
3799
|
-
#
|
|
4910
|
+
# headers.
|
|
4911
|
+
#
|
|
4912
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4913
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4914
|
+
#
|
|
4915
|
+
# References:
|
|
4916
|
+
#
|
|
4917
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412).
|
|
4918
|
+
# * [RFC
|
|
4919
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-412-precondition-fa
|
|
4920
|
+
# iled).
|
|
4921
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#412).
|
|
3800
4922
|
#
|
|
3801
4923
|
class HTTPPreconditionFailed < HTTPClientError
|
|
3802
4924
|
HAS_BODY: bool
|
|
@@ -3805,9 +4927,18 @@ module Net
|
|
|
3805
4927
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3806
4928
|
# Response class for `Payload Too Large` responses (status code 413).
|
|
3807
4929
|
#
|
|
3808
|
-
# The request is larger than the server is willing or able to process.
|
|
3809
|
-
#
|
|
3810
|
-
#
|
|
4930
|
+
# The request is larger than the server is willing or able to process.
|
|
4931
|
+
#
|
|
4932
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4933
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4934
|
+
#
|
|
4935
|
+
# References:
|
|
4936
|
+
#
|
|
4937
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/413).
|
|
4938
|
+
# * [RFC
|
|
4939
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-413-content-too-lar
|
|
4940
|
+
# ge).
|
|
4941
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#413).
|
|
3811
4942
|
#
|
|
3812
4943
|
class HTTPPayloadTooLarge < HTTPClientError
|
|
3813
4944
|
HAS_BODY: bool
|
|
@@ -3816,8 +4947,17 @@ module Net
|
|
|
3816
4947
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3817
4948
|
# Response class for `URI Too Long` responses (status code 414).
|
|
3818
4949
|
#
|
|
3819
|
-
# The URI provided was too long for the server to process.
|
|
3820
|
-
#
|
|
4950
|
+
# The URI provided was too long for the server to process.
|
|
4951
|
+
#
|
|
4952
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4953
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4954
|
+
#
|
|
4955
|
+
# References:
|
|
4956
|
+
#
|
|
4957
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/414).
|
|
4958
|
+
# * [RFC
|
|
4959
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-414-uri-too-long).
|
|
4960
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#414).
|
|
3821
4961
|
#
|
|
3822
4962
|
class HTTPURITooLong < HTTPClientError
|
|
3823
4963
|
HAS_BODY: bool
|
|
@@ -3827,8 +4967,18 @@ module Net
|
|
|
3827
4967
|
# Response class for `Unsupported Media Type` responses (status code 415).
|
|
3828
4968
|
#
|
|
3829
4969
|
# The request entity has a media type which the server or resource does not
|
|
3830
|
-
# support.
|
|
3831
|
-
#
|
|
4970
|
+
# support.
|
|
4971
|
+
#
|
|
4972
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4973
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4974
|
+
#
|
|
4975
|
+
# References:
|
|
4976
|
+
#
|
|
4977
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415).
|
|
4978
|
+
# * [RFC
|
|
4979
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-415-unsupported-med
|
|
4980
|
+
# ia-type).
|
|
4981
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#415).
|
|
3832
4982
|
#
|
|
3833
4983
|
class HTTPUnsupportedMediaType < HTTPClientError
|
|
3834
4984
|
HAS_BODY: bool
|
|
@@ -3838,8 +4988,18 @@ module Net
|
|
|
3838
4988
|
# Response class for `Range Not Satisfiable` responses (status code 416).
|
|
3839
4989
|
#
|
|
3840
4990
|
# The request entity has a media type which the server or resource does not
|
|
3841
|
-
# support.
|
|
3842
|
-
#
|
|
4991
|
+
# support.
|
|
4992
|
+
#
|
|
4993
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
4994
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
4995
|
+
#
|
|
4996
|
+
# References:
|
|
4997
|
+
#
|
|
4998
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/416).
|
|
4999
|
+
# * [RFC
|
|
5000
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-416-range-not-satis
|
|
5001
|
+
# fiable).
|
|
5002
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#416).
|
|
3843
5003
|
#
|
|
3844
5004
|
class HTTPRangeNotSatisfiable < HTTPClientError
|
|
3845
5005
|
HAS_BODY: bool
|
|
@@ -3849,8 +5009,17 @@ module Net
|
|
|
3849
5009
|
# Response class for `Expectation Failed` responses (status code 417).
|
|
3850
5010
|
#
|
|
3851
5011
|
# The server cannot meet the requirements of the Expect request-header field.
|
|
3852
|
-
#
|
|
3853
|
-
#
|
|
5012
|
+
#
|
|
5013
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5014
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5015
|
+
#
|
|
5016
|
+
# References:
|
|
5017
|
+
#
|
|
5018
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/417).
|
|
5019
|
+
# * [RFC
|
|
5020
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-417-expectation-fai
|
|
5021
|
+
# led).
|
|
5022
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#417).
|
|
3854
5023
|
#
|
|
3855
5024
|
class HTTPExpectationFailed < HTTPClientError
|
|
3856
5025
|
HAS_BODY: bool
|
|
@@ -3860,8 +5029,16 @@ module Net
|
|
|
3860
5029
|
# Response class for `Misdirected Request` responses (status code 421).
|
|
3861
5030
|
#
|
|
3862
5031
|
# The request was directed at a server that is not able to produce a response.
|
|
3863
|
-
#
|
|
3864
|
-
#
|
|
5032
|
+
#
|
|
5033
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5034
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5035
|
+
#
|
|
5036
|
+
# References:
|
|
5037
|
+
#
|
|
5038
|
+
# * [RFC
|
|
5039
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-421-misdirected-req
|
|
5040
|
+
# uest).
|
|
5041
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#421).
|
|
3865
5042
|
#
|
|
3866
5043
|
class HTTPMisdirectedRequest < HTTPClientError
|
|
3867
5044
|
HAS_BODY: bool
|
|
@@ -3870,8 +5047,18 @@ module Net
|
|
|
3870
5047
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3871
5048
|
# Response class for `Unprocessable Entity` responses (status code 422).
|
|
3872
5049
|
#
|
|
3873
|
-
# The request was well-formed but had semantic errors.
|
|
3874
|
-
#
|
|
5050
|
+
# The request was well-formed but had semantic errors.
|
|
5051
|
+
#
|
|
5052
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5053
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5054
|
+
#
|
|
5055
|
+
# References:
|
|
5056
|
+
#
|
|
5057
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422).
|
|
5058
|
+
# * [RFC
|
|
5059
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-422-unprocessable-c
|
|
5060
|
+
# ontent).
|
|
5061
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#422).
|
|
3875
5062
|
#
|
|
3876
5063
|
class HTTPUnprocessableEntity < HTTPClientError
|
|
3877
5064
|
HAS_BODY: bool
|
|
@@ -3880,8 +5067,15 @@ module Net
|
|
|
3880
5067
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3881
5068
|
# Response class for `Locked (WebDAV)` responses (status code 423).
|
|
3882
5069
|
#
|
|
3883
|
-
# The requested resource is locked.
|
|
3884
|
-
#
|
|
5070
|
+
# The requested resource is locked.
|
|
5071
|
+
#
|
|
5072
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5073
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5074
|
+
#
|
|
5075
|
+
# References:
|
|
5076
|
+
#
|
|
5077
|
+
# * [RFC 4918](https://www.rfc-editor.org/rfc/rfc4918#section-11.3).
|
|
5078
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#423).
|
|
3885
5079
|
#
|
|
3886
5080
|
class HTTPLocked < HTTPClientError
|
|
3887
5081
|
HAS_BODY: bool
|
|
@@ -3894,6 +5088,14 @@ module Net
|
|
|
3894
5088
|
# failed. See [424 Failed Dependency
|
|
3895
5089
|
# (WebDAV)](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#424).
|
|
3896
5090
|
#
|
|
5091
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5092
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5093
|
+
#
|
|
5094
|
+
# References:
|
|
5095
|
+
#
|
|
5096
|
+
# * [RFC 4918](https://www.rfc-editor.org/rfc/rfc4918#section-11.4).
|
|
5097
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#424).
|
|
5098
|
+
#
|
|
3897
5099
|
class HTTPFailedDependency < HTTPClientError
|
|
3898
5100
|
HAS_BODY: bool
|
|
3899
5101
|
end
|
|
@@ -3902,8 +5104,17 @@ module Net
|
|
|
3902
5104
|
# Response class for `Upgrade Required` responses (status code 426).
|
|
3903
5105
|
#
|
|
3904
5106
|
# The client should switch to the protocol given in the Upgrade header field.
|
|
3905
|
-
#
|
|
3906
|
-
#
|
|
5107
|
+
#
|
|
5108
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5109
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5110
|
+
#
|
|
5111
|
+
# References:
|
|
5112
|
+
#
|
|
5113
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/426).
|
|
5114
|
+
# * [RFC
|
|
5115
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-426-upgrade-require
|
|
5116
|
+
# d).
|
|
5117
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#426).
|
|
3907
5118
|
#
|
|
3908
5119
|
class HTTPUpgradeRequired < HTTPClientError
|
|
3909
5120
|
HAS_BODY: bool
|
|
@@ -3912,9 +5123,16 @@ module Net
|
|
|
3912
5123
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3913
5124
|
# Response class for `Precondition Required` responses (status code 428).
|
|
3914
5125
|
#
|
|
3915
|
-
# The origin server requires the request to be conditional.
|
|
3916
|
-
#
|
|
3917
|
-
#
|
|
5126
|
+
# The origin server requires the request to be conditional.
|
|
5127
|
+
#
|
|
5128
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5129
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5130
|
+
#
|
|
5131
|
+
# References:
|
|
5132
|
+
#
|
|
5133
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/428).
|
|
5134
|
+
# * [RFC 6585](https://www.rfc-editor.org/rfc/rfc6585#section-3).
|
|
5135
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#428).
|
|
3918
5136
|
#
|
|
3919
5137
|
class HTTPPreconditionRequired < HTTPClientError
|
|
3920
5138
|
HAS_BODY: bool
|
|
@@ -3923,8 +5141,16 @@ module Net
|
|
|
3923
5141
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
3924
5142
|
# Response class for `Too Many Requests` responses (status code 429).
|
|
3925
5143
|
#
|
|
3926
|
-
# The user has sent too many requests in a given amount of time.
|
|
3927
|
-
#
|
|
5144
|
+
# The user has sent too many requests in a given amount of time.
|
|
5145
|
+
#
|
|
5146
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5147
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5148
|
+
#
|
|
5149
|
+
# References:
|
|
5150
|
+
#
|
|
5151
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429).
|
|
5152
|
+
# * [RFC 6585](https://www.rfc-editor.org/rfc/rfc6585#section-4).
|
|
5153
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429).
|
|
3928
5154
|
#
|
|
3929
5155
|
class HTTPTooManyRequests < HTTPClientError
|
|
3930
5156
|
HAS_BODY: bool
|
|
@@ -3935,8 +5161,16 @@ module Net
|
|
|
3935
5161
|
# 431).
|
|
3936
5162
|
#
|
|
3937
5163
|
# An individual header field is too large, or all the header fields
|
|
3938
|
-
# collectively, are too large.
|
|
3939
|
-
#
|
|
5164
|
+
# collectively, are too large.
|
|
5165
|
+
#
|
|
5166
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5167
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5168
|
+
#
|
|
5169
|
+
# References:
|
|
5170
|
+
#
|
|
5171
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/431).
|
|
5172
|
+
# * [RFC 6585](https://www.rfc-editor.org/rfc/rfc6585#section-5).
|
|
5173
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#431).
|
|
3940
5174
|
#
|
|
3941
5175
|
class HTTPRequestHeaderFieldsTooLarge < HTTPClientError
|
|
3942
5176
|
HAS_BODY: bool
|
|
@@ -3947,9 +5181,16 @@ module Net
|
|
|
3947
5181
|
# 451).
|
|
3948
5182
|
#
|
|
3949
5183
|
# A server operator has received a legal demand to deny access to a resource or
|
|
3950
|
-
# to a set of resources that includes the requested resource.
|
|
3951
|
-
#
|
|
3952
|
-
#
|
|
5184
|
+
# to a set of resources that includes the requested resource.
|
|
5185
|
+
#
|
|
5186
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5187
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5188
|
+
#
|
|
5189
|
+
# References:
|
|
5190
|
+
#
|
|
5191
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/451).
|
|
5192
|
+
# * [RFC 7725](https://www.rfc-editor.org/rfc/rfc7725.html#section-3).
|
|
5193
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#451).
|
|
3953
5194
|
#
|
|
3954
5195
|
class HTTPUnavailableForLegalReasons < HTTPClientError
|
|
3955
5196
|
HAS_BODY: bool
|
|
@@ -3959,8 +5200,18 @@ module Net
|
|
|
3959
5200
|
# Response class for `Internal Server Error` responses (status code 500).
|
|
3960
5201
|
#
|
|
3961
5202
|
# An unexpected condition was encountered and no more specific message is
|
|
3962
|
-
# suitable.
|
|
3963
|
-
#
|
|
5203
|
+
# suitable.
|
|
5204
|
+
#
|
|
5205
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5206
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5207
|
+
#
|
|
5208
|
+
# References:
|
|
5209
|
+
#
|
|
5210
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500).
|
|
5211
|
+
# * [RFC
|
|
5212
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-500-internal-server
|
|
5213
|
+
# -error).
|
|
5214
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#500).
|
|
3964
5215
|
#
|
|
3965
5216
|
class HTTPInternalServerError < HTTPServerError
|
|
3966
5217
|
HAS_BODY: bool
|
|
@@ -3970,8 +5221,18 @@ module Net
|
|
|
3970
5221
|
# Response class for `Not Implemented` responses (status code 501).
|
|
3971
5222
|
#
|
|
3972
5223
|
# The server either does not recognize the request method, or it lacks the
|
|
3973
|
-
# ability to fulfil the request.
|
|
3974
|
-
#
|
|
5224
|
+
# ability to fulfil the request.
|
|
5225
|
+
#
|
|
5226
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5227
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5228
|
+
#
|
|
5229
|
+
# References:
|
|
5230
|
+
#
|
|
5231
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/501).
|
|
5232
|
+
# * [RFC
|
|
5233
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-501-not-implemented
|
|
5234
|
+
# ).
|
|
5235
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#501).
|
|
3975
5236
|
#
|
|
3976
5237
|
class HTTPNotImplemented < HTTPServerError
|
|
3977
5238
|
HAS_BODY: bool
|
|
@@ -3981,8 +5242,17 @@ module Net
|
|
|
3981
5242
|
# Response class for `Bad Gateway` responses (status code 502).
|
|
3982
5243
|
#
|
|
3983
5244
|
# The server was acting as a gateway or proxy and received an invalid response
|
|
3984
|
-
# from the upstream server.
|
|
3985
|
-
#
|
|
5245
|
+
# from the upstream server.
|
|
5246
|
+
#
|
|
5247
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5248
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5249
|
+
#
|
|
5250
|
+
# References:
|
|
5251
|
+
#
|
|
5252
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/502).
|
|
5253
|
+
# * [RFC
|
|
5254
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-502-bad-gateway).
|
|
5255
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#502).
|
|
3986
5256
|
#
|
|
3987
5257
|
class HTTPBadGateway < HTTPServerError
|
|
3988
5258
|
HAS_BODY: bool
|
|
@@ -3992,8 +5262,18 @@ module Net
|
|
|
3992
5262
|
# Response class for `Service Unavailable` responses (status code 503).
|
|
3993
5263
|
#
|
|
3994
5264
|
# The server cannot handle the request (because it is overloaded or down for
|
|
3995
|
-
# maintenance).
|
|
3996
|
-
#
|
|
5265
|
+
# maintenance).
|
|
5266
|
+
#
|
|
5267
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5268
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5269
|
+
#
|
|
5270
|
+
# References:
|
|
5271
|
+
#
|
|
5272
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503).
|
|
5273
|
+
# * [RFC
|
|
5274
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-503-service-unavail
|
|
5275
|
+
# able).
|
|
5276
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#503).
|
|
3997
5277
|
#
|
|
3998
5278
|
class HTTPServiceUnavailable < HTTPServerError
|
|
3999
5279
|
HAS_BODY: bool
|
|
@@ -4003,8 +5283,18 @@ module Net
|
|
|
4003
5283
|
# Response class for `Gateway Timeout` responses (status code 504).
|
|
4004
5284
|
#
|
|
4005
5285
|
# The server was acting as a gateway or proxy and did not receive a timely
|
|
4006
|
-
# response from the upstream server.
|
|
4007
|
-
#
|
|
5286
|
+
# response from the upstream server.
|
|
5287
|
+
#
|
|
5288
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5289
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5290
|
+
#
|
|
5291
|
+
# References:
|
|
5292
|
+
#
|
|
5293
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/504).
|
|
5294
|
+
# * [RFC
|
|
5295
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-504-gateway-timeout
|
|
5296
|
+
# ).
|
|
5297
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#504).
|
|
4008
5298
|
#
|
|
4009
5299
|
class HTTPGatewayTimeout < HTTPServerError
|
|
4010
5300
|
HAS_BODY: bool
|
|
@@ -4013,9 +5303,18 @@ module Net
|
|
|
4013
5303
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
4014
5304
|
# Response class for `HTTP Version Not Supported` responses (status code 505).
|
|
4015
5305
|
#
|
|
4016
|
-
# The server does not support the HTTP version used in the request.
|
|
4017
|
-
#
|
|
4018
|
-
#
|
|
5306
|
+
# The server does not support the HTTP version used in the request.
|
|
5307
|
+
#
|
|
5308
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5309
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5310
|
+
#
|
|
5311
|
+
# References:
|
|
5312
|
+
#
|
|
5313
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/505).
|
|
5314
|
+
# * [RFC
|
|
5315
|
+
# 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-505-http-version-no
|
|
5316
|
+
# t-suppor).
|
|
5317
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#505).
|
|
4019
5318
|
#
|
|
4020
5319
|
class HTTPVersionNotSupported < HTTPServerError
|
|
4021
5320
|
HAS_BODY: bool
|
|
@@ -4025,8 +5324,16 @@ module Net
|
|
|
4025
5324
|
# Response class for `Variant Also Negotiates` responses (status code 506).
|
|
4026
5325
|
#
|
|
4027
5326
|
# Transparent content negotiation for the request results in a circular
|
|
4028
|
-
# reference.
|
|
4029
|
-
#
|
|
5327
|
+
# reference.
|
|
5328
|
+
#
|
|
5329
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5330
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5331
|
+
#
|
|
5332
|
+
# References:
|
|
5333
|
+
#
|
|
5334
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/506).
|
|
5335
|
+
# * [RFC 2295](https://www.rfc-editor.org/rfc/rfc2295#section-8.1).
|
|
5336
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#506).
|
|
4030
5337
|
#
|
|
4031
5338
|
class HTTPVariantAlsoNegotiates < HTTPServerError
|
|
4032
5339
|
HAS_BODY: bool
|
|
@@ -4037,8 +5344,16 @@ module Net
|
|
|
4037
5344
|
# 507).
|
|
4038
5345
|
#
|
|
4039
5346
|
# The server is unable to store the representation needed to complete the
|
|
4040
|
-
# request.
|
|
4041
|
-
#
|
|
5347
|
+
# request.
|
|
5348
|
+
#
|
|
5349
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5350
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5351
|
+
#
|
|
5352
|
+
# References:
|
|
5353
|
+
#
|
|
5354
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/507).
|
|
5355
|
+
# * [RFC 4918](https://www.rfc-editor.org/rfc/rfc4918#section-11.5).
|
|
5356
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#507).
|
|
4042
5357
|
#
|
|
4043
5358
|
class HTTPInsufficientStorage < HTTPServerError
|
|
4044
5359
|
HAS_BODY: bool
|
|
@@ -4047,9 +5362,16 @@ module Net
|
|
|
4047
5362
|
# <!-- rdoc-file=lib/net/http/responses.rb -->
|
|
4048
5363
|
# Response class for `Loop Detected (WebDAV)` responses (status code 508).
|
|
4049
5364
|
#
|
|
4050
|
-
# The server detected an infinite loop while processing the request.
|
|
4051
|
-
#
|
|
4052
|
-
# (
|
|
5365
|
+
# The server detected an infinite loop while processing the request.
|
|
5366
|
+
#
|
|
5367
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5368
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5369
|
+
#
|
|
5370
|
+
# References:
|
|
5371
|
+
#
|
|
5372
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/508).
|
|
5373
|
+
# * [RFC 5942](https://www.rfc-editor.org/rfc/rfc5842.html#section-7.2).
|
|
5374
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#508).
|
|
4053
5375
|
#
|
|
4054
5376
|
class HTTPLoopDetected < HTTPServerError
|
|
4055
5377
|
HAS_BODY: bool
|
|
@@ -4059,8 +5381,15 @@ module Net
|
|
|
4059
5381
|
# Response class for `Not Extended` responses (status code 510).
|
|
4060
5382
|
#
|
|
4061
5383
|
# Further extensions to the request are required for the server to fulfill it.
|
|
4062
|
-
#
|
|
4063
|
-
#
|
|
5384
|
+
#
|
|
5385
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5386
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5387
|
+
#
|
|
5388
|
+
# References:
|
|
5389
|
+
#
|
|
5390
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/510).
|
|
5391
|
+
# * [RFC 2774](https://www.rfc-editor.org/rfc/rfc2774.html#section-7).
|
|
5392
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#510).
|
|
4064
5393
|
#
|
|
4065
5394
|
class HTTPNotExtended < HTTPServerError
|
|
4066
5395
|
HAS_BODY: bool
|
|
@@ -4070,16 +5399,23 @@ module Net
|
|
|
4070
5399
|
# Response class for `Network Authentication Required` responses (status code
|
|
4071
5400
|
# 511).
|
|
4072
5401
|
#
|
|
4073
|
-
# The client needs to authenticate to gain network access.
|
|
4074
|
-
#
|
|
4075
|
-
#
|
|
5402
|
+
# The client needs to authenticate to gain network access.
|
|
5403
|
+
#
|
|
5404
|
+
# This class also includes (indirectly) module Net::HTTPHeader, which gives
|
|
5405
|
+
# access to its [methods for getting headers](rdoc-ref:Net::HTTPHeader@Getters).
|
|
5406
|
+
#
|
|
5407
|
+
# References:
|
|
5408
|
+
#
|
|
5409
|
+
# * [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/511).
|
|
5410
|
+
# * [RFC 6585](https://www.rfc-editor.org/rfc/rfc6585#section-6).
|
|
5411
|
+
# * [Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#511).
|
|
4076
5412
|
#
|
|
4077
5413
|
class HTTPNetworkAuthenticationRequired < HTTPServerError
|
|
4078
5414
|
HAS_BODY: bool
|
|
4079
5415
|
end
|
|
4080
5416
|
|
|
4081
5417
|
# <!-- rdoc-file=lib/net/http/response.rb -->
|
|
4082
|
-
# This class is the base class for Net::HTTP
|
|
5418
|
+
# This class is the base class for Net::HTTP response classes.
|
|
4083
5419
|
#
|
|
4084
5420
|
# ## About the Examples
|
|
4085
5421
|
#
|
|
@@ -4096,9 +5432,10 @@ module Net
|
|
|
4096
5432
|
#
|
|
4097
5433
|
# Some examples also assume these variables:
|
|
4098
5434
|
#
|
|
4099
|
-
# uri = URI('https://jsonplaceholder.typicode.com')
|
|
5435
|
+
# uri = URI('https://jsonplaceholder.typicode.com/')
|
|
4100
5436
|
# uri.freeze # Examples may not modify.
|
|
4101
5437
|
# hostname = uri.hostname # => "jsonplaceholder.typicode.com"
|
|
5438
|
+
# path = uri.path # => "/"
|
|
4102
5439
|
# port = uri.port # => 443
|
|
4103
5440
|
#
|
|
4104
5441
|
# So that example requests may be written as:
|