node http.get() - 如何获取返回的XML,以便我能用它做什么?

时间:2013-10-11 21:09:00

标签: xml node.js http request buffer

我正在尝试向XML API发出HTTP GET请求,等待返回的XML字符串,并将其转换为JS对象,最终转换为JSON。 xml2js模块应该可以在该过程结束时正常工作,但是我正在尝试使用node的本机http.request / http.get方法来发出请求,我甚至在读完文档后也不明白它是如何工作的好几次。

以下是我要做的事情的要点,以及我如何收到很多我不知道如何解析的内容。

https://gist.github.com/jasonrhodes/6942015

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

1 个答案:

答案 0 :(得分:3)

我假设您使用的是版本 0.10。 *。会发生什么是HTTP可以在中发送请求,这意味着响应可能有许多不同的部分。

在没有更多 结束之后,您应该拥有一个String对象并连接,因为您将它们接收到此对象事件由响应对象发出。

代码如下:

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);