From: Joe Van Dyk Date: 2006-07-20T07:43:09+09:00 Subject: Re: Net/HTTP is flaky? On 7/19/06, Just Another Victim of the Ambient Morality wrote: > > "Eric Hodel" wrote in message > news:087CE005-B271-4B73-9C98-7DF62B1AC652@segment7.net... > > > > $ ruby -rnet/http > > Net::HTTP.start 'en.wikipedia.org' do |http| res = http.get '/'; p res; > > end > > # > > > > Matches browser behavior. > > > >> Hell, "/" at "music.com" has _never_ worked and there doesn't appear to > >> be any kind of redirect or anything. > > > > $ ruby -rnet/http > > Net::HTTP.start 'music.com' do |http| res = http.get '/'; p res; end > > # > > > > Redirects to www.music.com in the browser, Net::HTTP matches browser > > behavior. > > Okay, so the site doesn't exist where I think it does and I get > redirected... in my browser. Net::HTTP doesn't get redirected, it simply > fails. _This_ behaviour doesn't match my browser. Is there any way I can > get redirected or find out where it wants to redirect me and go there, > myself? You might want to check out the API docs for Net::HTTP. Copy/pasted from http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html: require 'net/http' require 'uri' def fetch(uri_str, limit = 10) # You should choose better exception. raise ArgumentError, 'HTTP redirect too deep' if limit == 0 response = Net::HTTP.get_response(URI.parse(uri_str)) case response when Net::HTTPSuccess then response when Net::HTTPRedirection then fetch(response['location'], limit - 1) else response.error! end end print fetch('http://www.ruby-lang.org')