【问题标题】:Getting connect ECONNREFUSED 127.0.0.1:80 when attempting HTTP request尝试 HTTP 请求时连接 ECONNREFUSED 127.0.0.1:80
【发布时间】:2017-02-16 01:40:12
【问题描述】:

我正在尝试使用本机 node.js http 模块向 news.google.com 发出 http 请求。当我尝试以下操作时,我收到了connect ECONNREFUSED 127.0.0.1:80 错误

var http = require('http');

var payload = JSON.stringify({
    name: 'John Smith',
    email: 'john.smith@smith.com',
    resume: 'https://drive.google.com/open?id=asgsaegsehsehseh'
});

var options = {
    hostname: 'https://news.google.com',
    path: '/',
    method: 'GET'
};

var httpRequest = http.request(options, function(request, response) {
    console.log('STATUS', response.statusCode);
    response.setEncoding('utf8');

    response.on('data', function(chunk) {
        console.log('BODY:', chunk);
    });

    response.on('end', function() {
        console.log('No more data in response');
    });
});

httpRequest.on('error', function(e) {
    console.log('Error with the request:', e.message);
});

httpRequest.write(payload);
httpRequest.end();

为什么会出现这个错误?

我尝试使用request npm 模块。它奏效了!

【问题讨论】:

    标签: node.js http post get request


    【解决方案1】:

    在我的例子中,问题实际上是我使用的 HTTP 客户端的默认行为,axios

    默认情况下,如果 axios 找不到请求的 URL 或 http 方法(GET/POST/PUT),它会将我们重定向到 127.0.0.1:80。所以最好检查你的网址是否也在使用axios

    【讨论】:

    • 感谢您的帮助。在 reactjs (ssr.tsx) 的服务器内部,Axios url 不正确。
    【解决方案2】:

    我的问题是在使用supertestjest 时。我的错误是没有将“/”作为某些 url 的前缀。因此,请仔细检查您发出的请求的 url 是否正确。

    【讨论】:

    • 有同样的经历。在使用supertestjest 执行请求之前忘记了前导“/”。 Dziekuje bardzo。
    • 出于某种奇怪的原因,这对我有用。感谢上帝,堆栈溢出。
    • 我自己错过了前导“/”。这有帮助。谢谢
    • 我有领先的/,但错误地也有一个不必要的.。谢谢!
    • 我犯了同样的错误,这对我有帮助。谢谢!
    【解决方案3】:

    我正在使用 axios,这个错误发生在 get 请求中,通过在我的 URL 前添加 http:// 解决了它(在我的情况下,服务器是 http)

    【讨论】:

      【解决方案4】:

      这里有几个问题:

      1. options 结构的hostname 字段应该只是主机,而不是 URL。在您的情况下,它应该只是 'news.google.com'

      2. request 方法的回调签名是 function (response) -- 你的签名是 function (request, response)。丢掉第一个参数。

      3. 正如所写,这将返回一个 HTTP 重定向到 https 站点。将var http = require('http'); 替换为var https = require('https');,然后在各处使用https 而不是http

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题。 通过修复我的代码中的 HTTP 请求路径错误来解决它。

        【讨论】:

          【解决方案6】:

          我遇到了这个问题,我的解决方案(对大多数人来说可能不一样)是服务器还没有监听,我必须在之后调用 axios 函数。

          【讨论】:

          • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
          猜你喜欢
          • 2020-06-18
          • 2020-11-03
          • 2021-02-24
          • 1970-01-01
          • 2020-02-02
          • 1970-01-01
          • 2018-02-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多