I've been banging my head against this problem for a while now. I'm
using Net::HTTP.get(URI.parse(url)) to fetch a response from another
server. It looks like this:
I call that from my controller on my staging box (using an HTTP
request, like normal) and it says "getaddrinfo: Temporary failure in
name resolution". Fair enough, but it does work from the console on
the staging box. In other words, from Mongrel I get an error, but from
the console it works fine. The error's backtrace points directly to
the line above, "Net::HTTP.get".
Now, the staging server is behind a firewall that I don't know much
about - and I can't rule out that being the cause of the problem.
Only, how would it work from the console if that was the case? As a
double check, curl also works from a terminal too.
It all works fine on my development box (Mongrel or console) - which
just adds to the puzzle.
I would have thought that the console environment was identical to the
mongrel environment. When I start up the console it reports that is
"Loading stage environment". And I can see mongrel running using ps
and it includes "-e stage" so I'm pretty sure the environments are the
Running Ruby 1.8.6 on Rails 2.1.0, Mac OS X Server 10.5.4