当前位置: 首页 > 知识库问答 >
问题:

如何使用节点获取从API获取数据和响应状态?

端木安国
2023-03-14

根据节点获取文档节点获取

我们可以这样得到响应状态

fetch('https://github.com/')
    .then(res => {
        console.log(res.status);
    });

为了得到数据

fetch('https://api.github.com/users/github')
    .then(res => res.json())
    .then(jsonData => console.log(jsonData));

我有一个场景,需要从响应返回JSON数据和状态。我试着这样用

     fetch('https://api.github.com/users/github')
            .then(res => res.json())
            .then(jsonData => {
             console.log(jsonData);
             console.log(jsonData.status);
      });

但是

安慰日志(jsonData.status)

不会返回状态。如何获取状态和输出数据

共有3个答案

洪伟彦
2023-03-14

我可能会朝相反的方向走,但我建议您使用requestJs,因为它的社区比node fetch大得多,并且提供了很多功能。

通过请求Js,你可以获取像这样的状态代码

 request("https://api.github.com/users/github", (err, res, body) => {
     let statusCode = res.statusCode;
 });

RequestJs还提供了许多简单的方法来调用不同的API方法,还可以方便地查看API请求和API响应。

谯德元
2023-03-14

另一种解决方案是使用Promise。全部

fetch('https://api.github.com/users/github')
  .then(res => Promise.all([res.status, res.json()]))
  .then(([status, jsonData]) => {
    console.log(jsonData);
    console.log(status);
  });

希望能有帮助

秦时铭
2023-03-14

最简单的解决方案是声明一个变量并为其分配res.status值:

let status; 
fetch('https://api.github.com/users/github')
  .then((res) => { 
    status = res.status; 
    return res.json() 
  })
  .then((jsonData) => {
    console.log(jsonData);
    console.log(status);
  })
  .catch((err) => {
    // handle error
    console.error(err);
  });

您也可以使用async/await以这种方式进行尝试:

retrieveStatus = async (url) => {
  try {
    const response = await fetch(url);
    const { status } = response; 
    return status;
  } catch (err) {
   // handle error
    console.error(err);
  }
}

然后,您可以将其与您想要的任何URL一起使用:

retrieveStatus('https://api.github.com/users/github)

 类似资料:
  • 我正在创建一个fetchBill函数。分配https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c到一个api变量。它使用浏览器的fetch函数向api发出HTTP请求。它在一个函数中使用箭头函数。然后调用fetch函数,并在将其转换为JSON后返回响应。使用另一个。然后调用第一个函数,该函数将JSON数据传递给displayCartTo

  • 我从服务器得到这样的响应: 但打印fetch API捕获中的err只会返回错误对象。 它打印了这个(来自谷歌浏览器): 我想得到正确的错误处理状态代码,就像服务器没有响应一样。 在这种情况下,有没有办法获取响应数据?否则,我可以尝试什么替代方案? 任何建议都将不胜感激!

  • 当我尝试使用Angularjs$http.get()访问wiki api时,出现了CORS问题。这是我的密码 $http.get('http://en.wikipedia.org/w/api.php?action=query 这是错误信息 无法加载XMLHttpRequesthttps://en.wikipedia.org/w/api.php?action=query

  • 假设我有一个像这样的endpoint。我想获取mp4文件,并将其原始数据插入到字符串中,以便计算整个文件内容的sha256。如何使用节点获取库执行此操作?我在互联网上找到的所有例子都假设从查询中返回一个json对象,是否总是这样,我应该使用另一个库?下面是一个示例代码: 我也没有在留档中找到任何关于函数和对象的内容。那么在这种情况下,达到文件数据的最简单方法是什么呢?提前感谢

  • 我想在Android Studio中获取isSeen节点的值。M6F2mJjQ8uGPXAynZzV是消息的id,并将消息更改为消息。我想在适配器类中获得这个值。

  • 嗨,我正在尝试使用Keycloak API,但我不太了解它的工作原理。我想获取一个领域的所有用户。所以我首先使用此endpoint获取一个令牌:在请求正文中使用此参数: client_id grant_type 用户名 密码 client_secret 第一个问题是:我应该使用什么客户端? 然后,我使用授权标头中的令牌调用此endpoint: