52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/http_utilities/http/adapters/curb.rb', line 52
def set_curl_options(url, options = {})
options = options.clone()
request = HttpUtilities::Http::Request.new
request.set_proxy_options(options)
accept_cookies = options.delete(:accept_cookies) { |e| false }
timeout = options.delete(:timeout) { |e| 120 }
maximum_redirects = options.delete(:maximum_redirects) { |e| 10 }
disable_auth = options.delete(:disable_auth) { |e| false }
accept_content_type = options.delete(:accept_content_type) { |e| false }
content_type = options.delete(:content_type) { |e| false }
cookie_file = nil
curl = Curl::Easy.new(url) do |c|
c. ||= {}
c.["User-Agent"] = c.useragent = request.user_agent
c.["Accept"] = accept_content_type if (accept_content_type)
c.["Content-Type"] = content_type if (content_type)
c.timeout = timeout
c.ssl_verify_host = false
c.follow_location = true
c.max_redirects = maximum_redirects
if (disable_auth)
c.http_auth_types = nil
c.proxy_auth_types = nil
c.unrestricted_auth = false
end
end
if (accept_cookies)
FileUtils.mkdir_p File.join(Rails.root, "tmp/cookies")
identifier = Time.now.to_date.to_s(:db).gsub("-", "_").gsub("\s", "_").gsub(":", "_")
cookie_file = File.join(Rails.root, "tmp/cookies", "cookies_#{identifier}.txt")
curl.enable_cookies = true
curl.cookiejar = cookie_file
curl.cookiefile = cookie_file
end
if (request.proxy[:host] && request.proxy[:port])
curl.proxy_url = ::Proxy.format_proxy_address(request.proxy[:host], request.proxy[:port], false)
curl.proxy_type = 5 if (request.proxy[:protocol] && request.proxy[:protocol].downcase.eql?('socks5'))
curl.proxypwd = ::Proxy.format_proxy_credentials(request.proxy[:username], request.proxy[:password]) if (request.proxy[:username] && request.proxy[:password])
end
request.interface = curl
return request
end
|