节点 http.get() -- 我如何获取返回的 XML 以便对其进行操作?

3
我试图向一个XML API发送HTTP GET请求,等待返回的XML字符串,将其转换为JS对象并最终转换为JSON。xml2js模块在该过程的末尾应该可以正常工作,但我正在尝试使用node的本地http.request/http.get方法进行请求,即使多次阅读文档后,我仍然不理解它的工作原理。

这是我尝试做的事情和我如何接收大量etc而不知道如何解析的要点。

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

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

1个回答

4

我假设您正在使用版本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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接