Skip to content
Open
Show file tree
Hide file tree
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
21 changes: 21 additions & 0 deletions lib/httparty.rb
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,28 @@ def write_timeout(value)
default_options[:write_timeout] = value
end

# Allows setting a default continue_timeout for all HTTP calls in seconds
#
# class Foo
# include HTTParty
# continue_timeout 10
# end
def continue_timeout(value)
validate_timeout_argument(__method__, value)
default_options[:continue_timeout] = value
end

# Allows setting a default ssl_timeout for all HTTP calls in seconds
#
# class Foo
# include HTTParty
# ssl_timeout 10
# end
def ssl_timeout(value)
validate_timeout_argument(__method__, value)
default_options[:ssl_timeout] = value
end

# Set an output stream for debugging, defaults to $stderr.
# The output stream is passed on to Net::HTTP#set_debug_output.
#
Expand Down
12 changes: 12 additions & 0 deletions lib/httparty/connection_adapter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ module HTTParty
# * :+open_timeout+: http connection open_timeout in seconds, overrides timeout if set
# * :+read_timeout+: http connection read_timeout in seconds, overrides timeout if set
# * :+write_timeout+: http connection write_timeout in seconds, overrides timeout if set (Ruby >= 2.6.0 required)
# * :+continue_timeout+: http connection continue_timeout in seconds, overrides timeout if set
# * :+ssl_timeout+: http connection ssl_timeout in seconds, overrides timeout if set
# * :+debug_output+: see HTTParty::ClassMethods.debug_output.
# * :+cert_store+: contains certificate data. see method 'attach_ssl_certificates'
# * :+pem+: contains pem client certificate data. see method 'attach_ssl_certificates'
Expand Down Expand Up @@ -120,6 +122,8 @@ def connection
http.open_timeout = options[:timeout]
http.read_timeout = options[:timeout]
http.write_timeout = options[:timeout]
http.continue_timeout = options[:timeout]
http.ssl_timeout = options[:timeout]
end

if add_timeout?(options[:read_timeout])
Expand All @@ -134,6 +138,14 @@ def connection
http.write_timeout = options[:write_timeout]
end

if add_timeout?(options[:continue_timeout])
http.continue_timeout = options[:continue_timeout]
end

if add_timeout?(options[:ssl_timeout])
http.ssl_timeout = options[:ssl_timeout]
end

if add_max_retries?(options[:max_retries])
http.max_retries = options[:max_retries]
end
Expand Down
Loading