当 URL 在浏览器中工作时,什么可能导致“连接 ETIMEDOUT”错误?

新手上路,请多包涵

我用 NodeJS 训练 myslef 并尝试了一个简单的 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 ,但我不知道如何修复它。

什么可能导致此错误?是我的代码还是网络/代理问题?

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 836
2 个回答

在代理后面时,您需要进行以下修改(如 本答案 中所述):

  • 将代理主机放在 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'
    }
}

原文由 sdabet 发布,翻译遵循 CC BY-SA 3.0 许可协议

就我而言,这是因为 http 但不是 https 根据需要

原文由 cane 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题