最終的なURLに到達するまで一連の潜在的なリダイレクトを追跡するために作成したRubyコードがあります。
def self.obtain_final_url_in_chain url
logger.debug "Following '#{url}'"
uri = URI url
http = Net::HTTP.start uri.host, uri.port
response = http.request_head url
case response.code
when "301"
obtain_final_url_in_chain response['location']
when "302"
obtain_final_url_in_chain response['location']
else
url
end
end
URLを使用して呼び出すobtain_final_url_in_chain
と、最終的に最終的なURLが返されます。
私はこのURLでそれを試しています:http://feeds.5by5.tv/master
http://web-sniffer.net/に基づいて、これは301リダイレクトの結果としてhttp://5by5.tv/rssにリダイレクトされる必要があります。代わりに、 http://feeds.5by5.tv/masterの404を取得します。
ただし、上記のコードは他のURLに対して200を返します(例: http: //feeds.feedburner.com/5by5video)。
なぜこれが起こっているのか誰か知っていますか?それは私を狂わせています!
ありがとう。