Я делаю запрос 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 успешно устанавливает соединение
Я пытался изменить порт сервера, и я все еще могу делать запросы со всеми клиентами, кроме node.js (который все еще получает ECONNREFUSED
)
Сервер, к которому я подключаюсь, — это CherryPy WSGI Server. Когда я пытаюсь подключиться к серверу node
по адресу localhost:8080, он работает нормально, что заставляет меня думать, что это проблема сервера, за исключением того, что другие клиенты работают с сервером CherryPy.
Я пробовал использовать те же заголовки, что и мой браузер, но это не работает, и похоже, что проблема в любом случае на уровне TCP, поэтому заголовки HTTP не должны быть проблемой.
Что не так с моим запросом node
?