1. ホーム
  2. node.js

[解決済み] ブラウザで動作しているURLで「connect ETIMEDOUT」エラーが発生する原因は何ですか?

2022-02-02 21:51:28

質問

私はNodeJSのトレーニングを行い、簡単なGETコールを試してみました。 以下は私のコードです。

var http = require('http');

var options = {
    host: 'www.boardgamegeek.com',
    path: '/xmlapi/boardgame/1?stats=1',
    method: 'GET'
}

var request = http.request(options, function (response) {
    var str = ""
    response.on('data', function (data) {
        str += data;
    });
    response.on('end', function () {
        console.log(str);
    });
});

request.on('error', function (e) {
    console.log('Problem with request: ' + e.message);
});

request.end();

というURLは、私のブラウザでは動作するようです。 https://www.boardgamegeek.com/xmlapi/boardgame/1?stats=1

とにかく、私は リクエストに問題あり:ETIMEDOUTに接続 を実行したところ、修正する方法が全く分かりません。

このエラーの原因は何でしょうか?私のコードが原因なのか、それともネットワークやプロキシの問題なのでしょうか?

解決方法を教えてください。

プロキシの背後にいる場合は、次のような修正が必要です。 この回答 ):

  • にプロキシホストを置く。 host パラメータ
  • にプロキシポートを指定します。 port パラメータ
  • に完全な宛先 URL を指定します。 path パラメータを使用します。

どちらが与えるか。

var options = {
    host: '<PROXY_HOST>',
    port: '<PROXY_PORT>',
    path: 'http://www.boardgamegeek.com/xmlapi/boardgame/1?stats=1',
    method: 'GET',
    headers: {
        Host: 'www.boardgamegeek.com'
    }
}