lib/u3d/utils.rb in u3d-1.0.15 vs lib/u3d/utils.rb in u3d-1.0.16
- old
+ new
@@ -38,25 +38,33 @@
follow_redirects(url, redirect_limit: redirect_limit, http_method: :head) do |request, _response|
request.uri.to_s
end
end
- def get_ssl(url, redirect_limit: 10)
- follow_redirects(url, redirect_limit: redirect_limit) do |_request, response|
+ # FIXME: alias deprecated
+ def get_ssl(url, redirect_limit: 10, request_headers: {})
+ page_content(url, redirect_limit: redirect_limit, request_headers: request_headers)
+ end
+
+ def page_content(url, redirect_limit: 10, request_headers: {})
+ follow_redirects(url, redirect_limit: redirect_limit, request_headers: request_headers) do |_request, response|
response.body
end
end
- def follow_redirects(url, redirect_limit: 10, http_method: :get, &block)
+ def follow_redirects(url, redirect_limit: 10, http_method: :get, request_headers: {}, &block)
raise 'Too many redirections' if redirect_limit.zero?
response = nil
request = nil
uri = URI(url)
begin
use_ssl = /^https/.match(url)
Net::HTTP.start(uri.host, uri.port, use_ssl: use_ssl) do |http|
request = http_request_class http_method, uri
+ request_headers.each do |k, v|
+ request[k] = v
+ end
response = http.request request
end
rescue OpenSSL::OpenSSLError => ssl_error
UI.error 'SSL has faced an error, you may want to check our README to fix it'
raise ssl_error
@@ -65,10 +73,10 @@
case response
when Net::HTTPSuccess then
yield(request, response)
when Net::HTTPRedirection then
UI.verbose "Redirected to #{response['location']}"
- follow_redirects(response['location'], redirect_limit: redirect_limit - 1, http_method: http_method, &block)
+ follow_redirects(response['location'], redirect_limit: redirect_limit - 1, http_method: http_method, request_headers: request_headers, &block)
else raise "Request failed with status #{response.code}"
end
end
def http_request_class(method, uri)