我正在向客户http
提出请求,但出现错误。当我使用浏览器或发出看似相同的请求时,它工作得很好node.js
ECONNREFUSED
curl(1)
这是节点请求:
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();
它给了我错误:
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
但是当我向不同的客户提出相同的请求时(curl
在这种情况下):
$ curl http://localhost:8080/explorers/1.0/agegroup
{... response JSON ...}
其他注意事项:
我尝试将主机更改为 www.google.com 并将端口更改为 80,并且节点成功连接
我已经尝试更改服务器的端口,我仍然可以向所有客户端发出请求,但 node.js (仍然会得到
ECONNREFUSED
)我要连接的服务器是CherryPy WSGI Server。当我尝试连接到
node
localhost:8080 上的服务器时,它工作正常,这让我认为这是服务器的问题,除了其他客户端使用 CherryPy 服务器。我尝试使用与浏览器相同的标头,但这不起作用,而且问题似乎出在 TCP 级别,因此 HTTP 标头应该不是问题。
我的node
请求有什么问题?