获取请求失败,并出现错误:连接ECONNREFUSED

时间:2019-01-18 11:11:56

标签: javascript node.js get-request

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

错误:

  

events.js:183         投掷者//未处理的“错误”事件         ^

     

错误:连接ECONNREFUSED ******       在Object._errnoException(util.js:992:11)       在_exceptionWithHostPort(util.js:1014:20)       在TCPConnectWrap.afterConnect上[作为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();

2 个答案:

答案 0 :(得分:0)

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

  1. 通过将hostnamepath和(可选)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');
    

    有关更多信息,请参阅官方documentation

答案 1 :(得分:0)

这里是一个示例,您不能在options对象上设置uri,您不能使用uri字符串/ URI对象,或者对此选项类型使用options对象(请参见Node.js http.request docs

const https = require('https');

const options = {
    hostname: 'jsonplaceholder.typicode.com',
    path: '/todos/1',
};

const req = https.request(options, (res) => {
    let returnData = "";

    res.on('data', chunk => {
        returnData = returnData + chunk;
    });

    res.on('end', () => {
        console.log('returndata: ', returnData);
    });
});

req.on('error', (e) => {
    console.error(e);
});

req.end();