尝试HTTP请求时获取连接ECONNREFUSED 127.0.0.1:80
我正尝试使用本机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模块。 它的工作!
这里有几个问题:
-
options
结构的hostname
段应该只是主机,而不是URL。 在你的情况下,它应该只是'news.google.com'
。 -
对
request
方法的callback签名是function (response)
– 你的function (request, response)
是function (request, response)
。 失去第一个参数。 -
正如所写,这将一直返回到https站点的HTTPredirect。 replace
var http = require('http');
用var https = require('https');
然后使用https
来代替http
。