On 18.09.2008 02:05, Daniel Choi wrote:
> Try running the following program:
> 
> ================
> require 'open-uri'
> 
> feed_url = "http://www.slate.com/rss"
> 
> result1 = open(feed_url).read
> puts "Saving result1.xml:"
> File.open("result1.xml", "w") {|f| f.write(result1)}
> 
> result2 = `curl -L #{feed_url}`
> puts "Saving result2.xml:"
> File.open("result2.xml", "w") {|f| f.write(result2)}
> 
> command = "diff result1.xml result2.xml"
> puts system(command)
> ================
> 
> result1 should be identical to result2, but it turns out that the feed
> that open-uri fetches is outdated content (by over a month), while the
> feed that curl fetches is up-to-date. Can anyone please explain what
> is going on?

Reasons I can think of:

i) Both approaches use different paths to the server, namely a different 
(or no) proxy.

ii) There is something in the request that makes the server send 
different data.

Can you try to obtain HTTP headers from both approaches?  That might 
clear up a few things.  Also, on Unix type systems check for environment 
variables and ~/.xyzrc files which might affect proxy settings.

Another good idea might be to try a different tool, e.g. a web browser, 
to see what that turns up.

Kind regards

	robert