@@ -13,9 +13,11 @@ module ClassMethods
1313 # @param log [Boolean] whether to log each request URL and response code
1414 # @param max_retries [Integer] the maximum number of times to retry after a 429 or 503 with Retry-After
1515 # @param max_retry_delay [Integer] the maximum retry delay (in seconds) to accept in a Retry-After header
16+ # @param timeout [Integer] the request timeout in seconds (RestClient will use this to set both open and read timeouts)
1617 # @raise [RestClient::Exception] in the event of an unsuccessful request.
17- def get ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS )
18- resp = make_request ( :get , uri , params , headers , log , max_retries , max_retry_delay )
18+ def get ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS ,
19+ timeout : DEFAULT_TIMEOUT_SECONDS )
20+ resp = make_request ( :get , uri , params , headers , log , max_retries , max_retry_delay , timeout )
1921 resp . body
2022 end
2123
@@ -28,8 +30,10 @@ def get(uri, params: {}, headers: {}, log: true, max_retries: MAX_RETRIES, max_r
2830 # @param headers [Hash] the request headers.
2931 # @param log [Boolean] whether to log each request URL and response code
3032 # @return [Integer] the response code as an integer.
31- def head ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS )
32- head_response ( uri , params : params , headers : headers , log : log , max_retries : max_retries , max_retry_delay : max_retry_delay ) . code
33+ def head ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS ,
34+ timeout : DEFAULT_TIMEOUT_SECONDS )
35+ head_response ( uri , params : params , headers : headers , log : log , max_retries : max_retries , max_retry_delay : max_retry_delay ,
36+ timeout : timeout ) . code
3337 end
3438
3539 # Performs a GET request and returns the response, even in the event of
@@ -40,10 +44,13 @@ def head(uri, params: {}, headers: {}, log: true, max_retries: MAX_RETRIES, max_
4044 # @param headers [Hash] the request headers.
4145 # @param log [Boolean] whether to log each request URL and response code
4246 # @return [RestClient::Response] the response
43- def get_response ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS )
44- make_request ( :get , uri , params , headers , log , max_retries , max_retry_delay )
47+ def get_response ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS ,
48+ timeout : DEFAULT_TIMEOUT_SECONDS )
49+ make_request ( :get , uri , params , headers , log , max_retries , max_retry_delay , timeout )
4550 rescue RestClient ::Exception => e
46- e . response
51+ return e . response if e . response
52+
53+ raise
4754 end
4855
4956 # Performs a HEAD request and returns the response, even in the event of
@@ -54,23 +61,27 @@ def get_response(uri, params: {}, headers: {}, log: true, max_retries: MAX_RETRI
5461 # @param headers [Hash] the request headers.
5562 # @param log [Boolean] whether to log each request URL and response code
5663 # @return [RestClient::Response] the response
57- def head_response ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS )
58- make_request ( :head , uri , params , headers , log , max_retries , max_retry_delay )
64+ def head_response ( uri , params : { } , headers : { } , log : true , max_retries : MAX_RETRIES , max_retry_delay : MAX_RETRY_DELAY_SECONDS ,
65+ timeout : DEFAULT_TIMEOUT_SECONDS )
66+ make_request ( :head , uri , params , headers , log , max_retries , max_retry_delay , timeout )
5967 rescue RestClient ::Exception => e
60- e . response
68+ return e . response if e . response
69+
70+ raise
6171 end
6272
6373 private
6474
65- def make_request ( method , url , params , headers , log , max_retries , max_retry_delay )
75+ def make_request ( method , url , params , headers , log , max_retries , max_retry_delay , timeout )
6676 Requester . new (
6777 method ,
6878 url ,
6979 params : params ,
7080 headers : headers ,
7181 log : log ,
7282 max_retries : max_retries ,
73- max_retry_delay : max_retry_delay
83+ max_retry_delay : max_retry_delay ,
84+ timeout : timeout
7485 ) . make_request
7586 end
7687
0 commit comments