[英]Cannot get JSON from NodeJS API call
我有以下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有任何想法。 我研究了许多其他方法来这样做,但是没有任何帮助。 希望您能使我摆脱恶魔般的困扰,让我越来越疲倦。 谢谢 !
我发现响应头有如此大的差异很奇怪。 因此,我研究了这个方向,并且意识到从Chrome和NodeJS应用程序调用相同的API时,请求标头有很大不同。
请求标头中不同的key:value之一是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);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.