繁体   English   中英

无法从NodeJS API调用获取JSON

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM