Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 23 additions & 22 deletions lib/net/http.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class HTTPHeaderSyntaxError < StandardError; end
# - If you will make only a few requests of all kinds,
# consider using the various singleton convenience methods in this class.
# Each of the following methods automatically starts and finishes
# a {session}[rdoc-ref:Net::HTTP@Sessions] that sends a single request:
# a {session}[rdoc-ref:Net::HTTPSession] that sends a single request:
#
# # Return string response body.
# Net::HTTP.get(hostname, path)
Expand All @@ -71,7 +71,8 @@ class HTTPHeaderSyntaxError < StandardError; end
# Net::HTTP.put(uri, data)
#
# - If performance is important, consider using sessions, which lower request overhead.
# This {session}[rdoc-ref:Net::HTTP@Sessions] has multiple requests for
# This {session}[rdoc-ref:Net::HTTPSession] has multiple requests for
#
# {HTTP methods}[https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods]
# and {WebDAV methods}[https://en.wikipedia.org/wiki/WebDAV#Implementation]:
#
Expand Down Expand Up @@ -183,7 +184,7 @@ class HTTPHeaderSyntaxError < StandardError; end
# - May contain any number of requests.
# - Is ended by instance method Net::HTTP#finish.
#
# See example sessions at {Strategies}[rdoc-ref:Net::HTTP@Strategies].
# See example sessions below.
#
# === Session Using \Net::HTTP.start
#
Expand Down Expand Up @@ -447,7 +448,7 @@ class HTTPHeaderSyntaxError < StandardError; end
# if the response has header <tt>'Content-Range'</tt>.
#
# Otherwise decompression (or not) depends on the value of header
# {Content-Encoding}[https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#content-encoding-response-header]:
# {Content-Encoding}[https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Content-Encoding_2]:
#
# - <tt>'deflate'</tt>, <tt>'gzip'</tt>, or <tt>'x-gzip'</tt>:
# decompresses the body and deletes the header.
Expand Down Expand Up @@ -964,7 +965,7 @@ def HTTP.socket_type #:nodoc: obsolete
#
# - For arguments +address+ and +port+, see Net::HTTP.new.
# - For proxy-defining arguments +p_addr+ through +p_pass+,
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
# - For argument +opts+, see below.
#
# With no block given:
Expand Down Expand Up @@ -1095,7 +1096,7 @@ class << HTTP
# http.port # => 8000
#
# For proxy-defining arguments +p_addr+ through +p_no_proxy+,
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
#
def HTTP.new(address, port = nil, p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil, p_no_proxy = nil, p_use_ssl = nil)
http = super address, port
Expand Down Expand Up @@ -1304,27 +1305,27 @@ def response_body_encoding=(value)

# Sets whether to determine the proxy from environment variable
# '<tt>ENV['http_proxy']</tt>';
# see {Proxy Using ENV['http_proxy']}[rdoc-ref:Net::HTTP@Proxy+Using+-27ENV-5B-27http_proxy-27-5D-27].
# see {Proxy Using ENV['http_proxy']}[rdoc-ref:Net::HTTPSession@Proxy+Using+-27ENV-5B-27http_proxy-27-5D-27]
attr_writer :proxy_from_env

# Sets the proxy address;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_writer :proxy_address

# Sets the proxy port;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_writer :proxy_port

# Sets the proxy user;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_writer :proxy_user

# Sets the proxy password;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_writer :proxy_pass

# Sets whether the proxy uses SSL;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_writer :proxy_use_ssl

# Returns the IP address for the connection.
Expand Down Expand Up @@ -1855,34 +1856,34 @@ def proxy_class?
end

# Returns the address of the proxy host, or +nil+ if none;
# see Net::HTTP@Proxy+Server.
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_reader :proxy_address

# Returns the port number of the proxy host, or +nil+ if none;
# see Net::HTTP@Proxy+Server.
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_reader :proxy_port

# Returns the user name for accessing the proxy, or +nil+ if none;
# see Net::HTTP@Proxy+Server.
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_reader :proxy_user

# Returns the password for accessing the proxy, or +nil+ if none;
# see Net::HTTP@Proxy+Server.
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
attr_reader :proxy_pass

# Use SSL when talking to the proxy. If Net::HTTP does not use a proxy, nil.
attr_reader :proxy_use_ssl
end

# Returns +true+ if a proxy server is defined, +false+ otherwise;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
def proxy?
!!(@proxy_from_env ? proxy_uri : @proxy_address)
end

# Returns +true+ if the proxy server is defined in the environment,
# +false+ otherwise;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
def proxy_from_env?
@proxy_from_env
end
Expand All @@ -1897,7 +1898,7 @@ def proxy_uri # :nodoc:
end

# Returns the address of the proxy server, if defined, +nil+ otherwise;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
def proxy_address
if @proxy_from_env then
proxy_uri&.hostname
Expand All @@ -1907,7 +1908,7 @@ def proxy_address
end

# Returns the port number of the proxy server, if defined, +nil+ otherwise;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
def proxy_port
if @proxy_from_env then
proxy_uri&.port
Expand All @@ -1917,7 +1918,7 @@ def proxy_port
end

# Returns the user name of the proxy server, if defined, +nil+ otherwise;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
def proxy_user
if @proxy_from_env
user = proxy_uri&.user
Expand All @@ -1928,7 +1929,7 @@ def proxy_user
end

# Returns the password of the proxy server, if defined, +nil+ otherwise;
# see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].
# see {Proxy Server}[rdoc-ref:Net::HTTPSession@Proxy+Server].
def proxy_pass
if @proxy_from_env
pass = proxy_uri&.password
Expand Down