Ruby open-uri redirect forbidden Ruby open-uri redirect forbidden ruby ruby

Ruby open-uri redirect forbidden


Have a look at the open_uri_redirections gem.

It patches Ruby's OpenURI to allow redirections from HTTP to HTTPS or the other way around.


You can also catch the exception and then try it again with 'https' url.

url = "http://classic.ona.io/api/v1/files/3538545?filename=gringgo/attachments/1485229166168.jpg"uri = URI.parse(url)tries = 3begin  uri.open(redirect: false)rescue OpenURI::HTTPRedirect => redirect  uri = redirect.uri # assigned from the "Location" response header  retry if (tries -= 1) > 0  raiseend

Source: https://twin.github.io/improving-open-uri/


Ruby 2.4 fixed upgrade redirects (from http -> https) in open-uri, so now:

RUBY_VERSION=> "2.4.2"require 'open-uri'=> trueopen('http://twitter.com')=> #<Tempfile:/tmp/open-uri20170926-24254-1kflwxq>

Source: http://blog.bigbinary.com/2017/03/02/open-uri-in-ruby-2-4-allows-http-to-https-redirection.html