Skip to content

Instantly share code, notes, and snippets.

@chrise86
Forked from lulalala/gist:6be104641bcb60f9d0e8
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrise86/9ce5b1adafdd39fa30ca to your computer and use it in GitHub Desktop.
Save chrise86/9ce5b1adafdd39fa30ca to your computer and use it in GitHub Desktop.
RedirectResolver
require 'uri'
require 'net/http'
class RedirectResolver
def self.resolve(uri)
uri_input = uri
if uri.is_a? String
uri = URI.parse(uri)
end
response = Net::HTTP.get_response(uri)
if response.is_a? Net::HTTPRedirection
redirected_uri = URI.parse(response['location'])
if redirected_uri.is_a? URI::Generic
redirected_uri = uri.merge(redirected_uri)
end
resolve(redirected_uri).to_s
else
uri_input
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment