xml - node http.get() —— 我如何获得返回的 XML,以便我可以用它做一些事情?

标签 xml node.js http request buffer

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

这是我正在尝试做的事情的要点,以及我如何收到一大堆我不知道如何解析的信息。

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

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

最佳答案

我假设您使用的是版本 0.10.*。发生的情况是 HTTP 可以 block 发送请求,这意味着响应可能来自许多不同的部分。

您应该有一个 String 对象,并在没有更多 block end 后将接收到的 block 连接到该对象事件由响应对象发出。

代码如下:

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

关于xml - node http.get() —— 我如何获得返回的 XML,以便我可以用它做一些事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19327297/

相关文章:

java - weblogic log4j.xml 更改记录器的 "level value"(即时)

java - 无法使用 FlowTextView 设置文本大小

node.js - Node JS 邮件调度程序

node.js - Nodejs PDF使下载无法打开

angularjs - 用户登录后Mean.js整个页面不刷新

javascript - 如果它为空,如何编写条件http.get来创建记录

android - 为什么 SwitchPreference 在从开到关切换时不显示动画,反之亦然?

javascript - 我可以使用 chrome 来更新 json 响应数据吗?

ruby-on-rails - 将 GET 和 POST 集合路由添加到资源路由

javascript - ionic 框架 : Parse xml from responseText