尝试 HTTP 请求时连接 ECONNREFUSED 127.0.0.1:80
Posted
技术标签:
【中文标题】尝试 HTTP 请求时连接 ECONNREFUSED 127.0.0.1:80【英文标题】:Getting connect ECONNREFUSED 127.0.0.1:80 when attempting HTTP request 【发布时间】: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 模块。它奏效了!
【问题讨论】:
【参考方案1】:在我的例子中,问题实际上是我使用的 HTTP 客户端的默认行为,axios
。
默认情况下,如果 axios 找不到请求的 URL 或 http
方法(GET/POST/PUT),它会将我们重定向到 127.0.0.1:80
。所以最好检查你的网址是否也在使用axios
。
【讨论】:
感谢您的帮助。在 reactjs (s-s-r.tsx) 的服务器内部,Axios url 不正确。【参考方案2】:我的问题是在使用supertest
和jest
时。我的错误是没有将“/”作为某些 url 的前缀。因此,请仔细检查您发出的请求的 url 是否正确。
【讨论】:
有同样的经历。在使用supertest
和jest
执行请求之前忘记了前导“/”。 Dziekuje bardzo。
出于某种奇怪的原因,这对我有用。感谢上帝,堆栈溢出。
我自己错过了前导“/”。这有帮助。谢谢
我有领先的/
,但错误地也有一个不必要的.
。谢谢!
我犯了同样的错误,这对我有帮助。谢谢!【参考方案3】:
我正在使用 axios,这个错误发生在 get
请求中,通过在我的 URL 前添加 http://
解决了它(在我的情况下,服务器是 http)
【讨论】:
【参考方案4】:这里有几个问题:
options
结构的hostname
字段应该只是主机,而不是 URL。在您的情况下,它应该只是 'news.google.com'
。
request
方法的回调签名是 function (response)
-- 你的签名是 function (request, response)
。丢掉第一个参数。
正如所写,这将返回一个 HTTP 重定向到 https 站点。将var http = require('http');
替换为var https = require('https');
,然后在各处使用https
而不是http
。
【讨论】:
【参考方案5】:我遇到了同样的问题。 通过修复我的代码中的 HTTP 请求路径错误来解决它。
【讨论】:
【参考方案6】:我遇到了这个问题,我的解决方案(对大多数人来说可能不一样)是服务器还没有监听,我必须在之后调用 axios 函数。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于尝试 HTTP 请求时连接 ECONNREFUSED 127.0.0.1:80的主要内容,如果未能解决你的问题,请参考以下文章
尝试对本地 Web api(离子 android 应用程序)的 http 请求时连接被拒绝
错误:尝试发出 localhost 请求时在 Insomnia 上出现 SSL 连接错误
无法运行量角器 - ECONNREFUSED 连接 ECONNREFUSED
错误:在exports._errnoException 处连接ECONNREFUSED 在TCPConnectWrap.afterConnect