无法从NodeJS API调用

时间:2016-02-25 15:27:29

标签: json node.js api

我有以下NodeJS代码片段来从现有的API端点获取JSON结构:

var request = require('request');

request({
    url: 'http://192.168.56.101:8088/json/disc/bases'
}, function (error, response, body) {
    if (!error && response.statusCode === 200) {
        console.log(body);
    }
});

当我console.log(body)我得到一些空的时候,如果我直接将URL打开到我的浏览器的标签中,我明显得到一个答案,一个非美化的json对象。

例如,如果我尝试使用API​​ http://jsonplaceholder.typicode.com/posts/1,我就没有任何困难,console.log(body)会返回预期的json。虽然,我注意到标题响应中存在许多差异:jsonplaceholder API在其标题中返回14个元素:

enter image description here

我的API只返回3个元素:

enter image description here

你们是否知道这意味着什么以及我能做些什么来获得JSON。我调查了许多其他方法,但没有任何帮助。我希望你能让我摆脱恶魔问题,我已经厌倦了。谢谢!

1 个答案:

答案 0 :(得分:0)

我发现回复标题有很大差异我觉得很奇怪。所以我调查了这个方向,并且当我们从我的NodeJS应用程序调用相同的API时,也意识到请求标头有很多不同。

其中一个关键:不同的请求标头中的值为Connection: keep-alive。因此,我在我的NodeJS应用程序中将此标头添加到请求中,现在已经有了预期的工作。谢谢你的帮助。

这里是最终代码:

var request = require('request');

request({
    url: 'http://192.168.56.101:8088/json/disc/bases',
    headers: {
        'Connection': 'keep-alive'
    }
}, function (error, response, body) {
    if (!error && response.statusCode === 200) {
        console.log(body);
    }
});