ECONNREFUSED error with node.js that does not occur in other clients

http, node.js

Solution

I guess sometimes you just need to step away from the problem...

I found a solution, but it doesn't seem to answer the question, and I don't really like the it.

I changed the CherryPy server configuration to serve at `127.0.0.1` instead of `localhost`, and the `node` client started working.

Problem

I'm making an `http` request with the `node.js` client, and I get an `ECONNREFUSED` error. When I make what appears to be the same request with my browser or `curl(1)`, it works just fine Here's the node request: ``` var options = { host: 'localhost', port: 8080, path: '/explorers/1.0/agegroup', method: 'GET' }; var req = http.request(options, function(res) { res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); req.on('error', function(e) { console.log(e); }); req.end(); ``` And it gives me the error: ``` { [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect' } ``` But when I make the same request with a different client (`curl` in this case): ``` $ curl http://localhost:8080/explorers/1.0/agegroup {... response JSON ...} ``` Other notes: I've tried changing the host to www.google.com and the port to 80, and node makes the connection successfully I've tried changing the port of the server, and I can still make requests with all clients but node.js (which still gets `ECONNREFUSED`) The server to which I'm connecting is the CherryPy WSGI Server. When I try connecting to a `node` server at localhost:8080, it works fine, which would make me think it's the server's problem, except other clients work with the CherryPy server. I've tried using the same headers that my browser is using, but that doesn't work, and it seems like the problem is at the TCP level anyway, so HTTP headers shouldn't be an issue. What's wrong with my `node` request?

Original source