9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/http_utilities/http/adapters/open_uri.rb', line 9
def retrieve_open_uri_content(url, options = {}, retries = 0, max_retries = 3)
response = nil
options = options.clone()
request = HttpUtilities::Http::Request.new
request.set_proxy_options(options)
open_uri_options = {"UserAgent" => request.user_agent}
open_uri_options[:read_timeout] = options.delete(:timeout) { |e| 120 }
if (request.proxy[:host] && request.proxy[:port])
proxy_address = Proxy.format_proxy_address(request.proxy[:host], request.proxy[:port], true)
open_uri_options[:proxy] = proxy_address
if (request.proxy[:username] && request.proxy[:password])
open_uri_options[:proxy_http_basic_authentication] = [proxy_address, request.proxy[:username], request.proxy[:password]]
end
end
connection = nil
while (connection.nil? && retries < max_retries)
connection = open(url, open_uri_options)
retries += 1
end
if (connection)
connection.rewind
response = connection.readlines.join("\n")
response = HttpUtilities::Http::Response.new(response, request)
end
return response
end
|