带参数的节点获取 GET

问题描述

我想获取一个包含“用户名”参数的网址。 我该怎么做?

示例:

获取网址:api/find-username

参数:用户名:“exampleusername”

是否可以使用 node-fetch 模块?

解决方法

是的,这是可能的,因为 node-fetch 可以构建服务器可能想要的任何 http GET 请求。

您需要从目标服务器知道应该如何传递用户名参数。您可以在 node-fetch 中构造请求,但是您必须按照目标服务器期望的方式构造它(您没有描述)。

例如,如果用户名应该在查询参数中,而您希望得到 JSON 结果,那么您可以这样做:

const fetch = require('node-fetch');

// build the URL
const url = "http://someserver.com/api/find-username?username=exampleusername";
fetch(url)
  .then(res => res.json())
  .then(results => {
     console.log(results);
  })
  .catch(err => {
     console.log(err);
});

我会提到构建正确的 URL 不是您猜测的事情。您的目标服务器的文档必须告诉您预期的 URL 类型,并且您必须构造一个与预期匹配的 URL。如上所示,通常将参数放入 GET 请求的查询字符串中,但当有一个必需参数时,也可以将其放入 URL 路径本身:

const fetch = require('node-fetch');

// build the URL
const url = "http://someserver.com/api/find-username/exampleusername";
fetch(url)
  .then(res => res.json())
  .then(results => {
     console.log(results);
  })
  .catch(err => {
     console.log(err);
});