尝试使用Node.js访问https URL

时间:2017-02-07 23:17:37

标签: node.js xml url https ssl-certificate

我正在尝试使用Node.js从HTTPS URL访问XML数据集。我使用了与使用HTTP URL的不同数据集相同的代码,并且工作正常。

我已经调查了这个https://www.npmjs.com/package/ssl-root-cas,但我不知道应该怎么做。

这是我正在使用的代码。

var parseString = require('xml2js').parseString;
var https = require('https');

function xmlToJson(url, callback) {
    var req = https.get(url, function(res) {
        var xml = '';
        res.on('data', function(chunk) {
          xml += chunk;
        });
        res.on('error', function(e) {
          callback(e, null);
        }); 
        res.on('timeout', function(e) {
          callback(e, null);
        }); 
        res.on('end', function() {
          parseString(xml, function(err, result) {
            callback(null, result);
          });
        });
    });
}

var urlTrain = "https://data.dublinked.ie/cgi-bin/rtpi/realtimebusinformation?stopid=7602&format=xml";
xmlToJson(urlTrain, function(err, data) {
    if (err) {
        return console.err(err);
    }
    else{
        console.log(data);
        console.log(data.busstopinformation);
        console.log(data.busstopinformation.results);
        console.log(data.busstopinformation.results.result[0]);
        console.log(data.busstopinformation.results.result[0].shortname);
    }
})

这是我在命令行中收到的错误。 Link

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

相反,我使用了JSON版本并改为使用此代码:

var request = require("request")
var url = "https://data.dublinked.ie/cgi-bin/rtpi/realtimebusinformation?stopid=4566&format=json"

request({
    url: url,
    json: true,
    rejectUnauthorized: false
}, function (error, response, body) {

    if (!error) {
        console.log(body) // Print the json response
    }
    else{
        console.log(error)
    }
})

希望有人会觉得这很有用。