node.js http.get xml为空

时间:2016-06-20 17:43:10

标签: xml node.js

http://www.hmrc.gov.uk/softwaredevelopers/rates/exrates-monthly-0616.xml

我试图将上面的hrmc网站url中的xml导入node.js(我打算稍后将其解析为json)。

正如hrmc所述

  

如果您需要将任何外币兑换成英镑以用于海关和增值税目的,您应该使用这些汇率。

请在其他地方找不到答案我可以找到汇率

function hrmc(cb){
    var m=new Date().getMonth()+1;
    if(m<10){m='0'+m;}
    var y=((new Date().getFullYear()+'').substr(2));
    var req=require('http').get({host:'www.hmrc.gov.uk',path:'/softwaredevelopers/rates/exrates-monthly-'+m+y+'.xml'},function(res){
        var xml='';
        res.on('error',function(e){console.dir(['res error',e]);});
        res.on('data',function(chunk){xml+=chunk;});
        res.on('end',function(){
            //
            console.log(xml);// '' <--empty?
            //cb(xml);
            });});
    req.on('error',function(e){console.dir(['req error',e]);});}

问题是我得到一个空字符串而且没有错误

1 个答案:

答案 0 :(得分:1)

它对我有用:

var http = require('http');    

http.get('http://www.hmrc.gov.uk/softwaredevelopers/rates/exrates-monthly-0616.xml', (response) => {

    var xml = '';

    response.on('data', function (chunk) {
        xml += chunk;
    });

    response.on('end', function() {
        console.log(xml); //not empty!
    })

}).on('error', (e) => {
    console.log('error: ' + e.message);
});