我有以下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个元素:
我的API只返回3个元素:
你们是否知道这意味着什么以及我能做些什么来获得JSON。我调查了许多其他方法,但没有任何帮助。我希望你能让我摆脱恶魔问题,我已经厌倦了。谢谢!
答案 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);
}
});