Я делаю запрос http
с клиентом node.js
, и я получаю ошибку ECONNREFUSED
. Когда я делаю то, что похоже на тот же запрос с моим браузером или curl(1)
, он работает просто отлично
Здесь запрос node:
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
?