クライアントにリクエストを送信しましたが、エラー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です。localhost:8080 でサーバーに接続しようとすると、
node
正常に動作します。他のクライアントが CherryPy サーバーで動作することを除いて、サーバーの問題だと思います。ブラウザが使用しているのと同じヘッダーを使用しようとしましたが、うまくいきません。とにかく問題は TCP レベルにあるように思われるため、HTTP ヘッダーは問題になりません。
node
リクエストの何が問題になっていますか?