Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node http.get()--如何获取返回的XML以便处理它?_Xml_Node.js_Http_Request_Buffer - Fatal编程技术网

node http.get()--如何获取返回的XML以便处理它?

node http.get()--如何获取返回的XML以便处理它?,xml,node.js,http,request,buffer,Xml,Node.js,Http,Request,Buffer,我试图向XMLAPI发出HTTPGET请求,等待返回的XML字符串,并将其转换为JS对象,最终转换为JSON。xml2js模块在该过程结束时应该可以正常工作,但我尝试使用node的原生http.request/http.get方法发出请求,即使在多次阅读文档之后,我也不知道它是如何工作的 下面是我要做的事情的要点,以及我如何接收到大量我不知道如何解析的etc 在这种情况下,http.get()方法是如何工作的?我假设您使用的是0.10版。*。所发生的事情是HTTP可以分块发送请求,这意味着响应

我试图向XMLAPI发出HTTPGET请求,等待返回的XML字符串,并将其转换为JS对象,最终转换为JSON。xml2js模块在该过程结束时应该可以正常工作,但我尝试使用node的原生http.request/http.get方法发出请求,即使在多次阅读文档之后,我也不知道它是如何工作的

下面是我要做的事情的要点,以及我如何接收到大量我不知道如何解析的etc


在这种情况下,http.get()方法是如何工作的?

我假设您使用的是0.10版。*。所发生的事情是HTTP可以分块发送请求,这意味着响应可以分为许多不同的部分

您应该有一个String对象,并在接收到块时将它们连接到此对象,在没有更多块之后,响应对象将发出一个end事件

守则如下:

var http = require('http');
var express = require('express');
var app = express();

// app.use(express.static(__dirname + '/public'));

app.get("/", function (req, res) {
    var options = {
        hostname: "search.mysite.com",
        path: '/search?site=hub&client=hub_frontend&output=xml_no_dtd&q=cats'
    };

    var gsaReq = http.get(options, function (response) {
        var completeResponse = '';
        response.on('data', function (chunk) {
            completeResponse += chunk;
        });
        response.on('end', function() {
            console.log(completeResponse);
        })
    }).on('error', function (e) {
        console.log('problem with request: ' + e.message);
    });

});

app.listen(3000);