首页 > 解决方案 > 获取请求失败并出现错误:连接 ECONNREFUSED

问题描述

我正在尝试向服务器发送获取请求。但是我收到以下错误,知道如何避免错误吗?

错误:

events.js:183 抛出错误;// 未处理的“错误”事件 ^

错误:在 TCPConnectWrap.afterConnect 的 _exceptionWithHostPort (util.js:1014:20) 处的 Object._errnoException (util.js:992:11) 处连接 ECONNREFUSED ****** [as oncomplete] (net.js:1186:14) )

我的请求:

var https = require("https");

// Update these options with the details of the web service you would like to call
var options = {
  method: 'GET',
  uri: 'https:*****',
  resolveWithFullResponse: true,
  json: true
};

var req = https.request(options, res => {
  res.setEncoding('utf8');
  var returnData = "";

  res.on('data', chunk => {
    returnData = returnData + chunk;
  });
  res.on('end', () => {
    console.log('returndata: ' + JSON.stringify(returnData))
    var pop = JSON.parse(returnData).population;
    callback(pop);
  });
});
req.end();

标签: javascriptnode.jsget-request

解决方案


有两种方法可以定义要传递给的请求选项https.request()

  1. 通过指定hostname,path和(可选)port作为单独的请求选项:

    var options = {
      method: 'GET',
      hostname: 'jsonplaceholder.typicode.com',
      path: '/posts/1',
      port: 443
    };
    
  2. 通过使用创建url.URL的实例:

    var URL = require('url').URL;
    var options = new URL('https://jsonplaceholder.typicode.com/posts/1');
    

    更多信息请参考官方文档


推荐阅读