通过NodeJS到127.0.0.1的http请求得到ECONNREFUSED的原因可能是什么?

时间:2018-11-14 14:05:22

标签: node.js

我在127.0.0.1:8000上启动了一个简单的Web服务器:

python -m SimpleHTTPServer 8000

我可以从终端成功发出带有curl的http请求

curl 127.0.0.1:8000

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>
<title>Directory listing for /</title>
<body>
<h2>Directory listing for /</h2>
<hr>
<ul>
</ul>
<hr>
</body>
</html>

当我从NodeJS发出http请求时,我得到ECONNREFUSED

const axios = require('axios');

(async function init() {
    try {
        const response = await axios({
            method: "get",
            url: "http://127.0.0.1:8000",
        });
        console.log("response", response);
    } catch (error) {
        console.error("error", error);
    }
})()

这可能是什么原因?

其他信息

  • 我尝试使用httpaxiosnode-fetch软件包,因此问题不是特定于软件包的。
  • 向公共api进行请求时,也与此ECONNREFUSED相同,因此问题不仅仅在于向本地主机发出请求
  • 由于请求是到本地主机的,所以我认为这不应该是因为公司代理。这是一个合理的假设吗?

1 个答案:

答案 0 :(得分:0)

当您的环境变量HTTP_PROXY包含无效的代理地址时,可能会发生这种情况。

如果您使用的是Unix / Linux,请尝试以下操作:

env HTTP_PROXY= node yourscript.js