Node.js 中如何发起 HTTP 请求?

阅读时长 5 分钟读完

在 Node.js 中,我们可以使用内置的 http 模块来发起 HTTP 请求。发起 HTTP 请求通常用于获取数据,比如向一个 API 接口请求数据。

发起 GET 请求

我们可以使用 http.get() 方法来发起一个简单的 GET 请求。这个方法返回一个可写流(Writable Stream),因此可以通过 on('data')on('end') 事件监听来处理返回的数据。

-- -------------------- ---- -------
----- ---- - ----------------

------------------------------ ----- -- -
  --- ---- - ---

  -------------- ------- -- -
    ---- -- ------
  ---

  ------------- -- -- -
    ------------------
  ---
-------------- ----- -- -
  -------------------------
---

上面的代码会向 http://example.com 发送一个 GET 请求,并在请求结束后将返回的数据输出到控制台。

发起 POST 请求

与 GET 请求不同,POST 请求需要在请求头中设置 Content-Type 和其他数据。我们可以使用 http.request() 方法来发起 POST 请求,并通过 write() 方法向请求流中写入数据。

-- -------------------- ---- -------
----- ---- - ----------------
----- ----------- - -----------------------

----- ---- - -----------------------
  ----- --------
  ---- ---
  ------ -------------------
---

----- ------- - -
  --------- --------------
  ----- ---
  ----- ----------
  ------- -------
  -------- -
    --------------- ------------------------------------
    ----------------- -----------------------
  -
--

----- --- - --------------------- ----- -- -
  --- ---- - ---

  -------------- ------- -- -
    ---- -- ------
  ---

  ------------- -- -- -
    ------------------
  ---
-------------- ----- -- -
  -------------------------
---

----------------
----------

上面的代码会向 http://example.com/submit 发送一个 POST 请求,请求头中包含 Content-TypeContent-Length,请求体中包含 nameageemail 等数据。

发起 HTTPS 请求

如果要向一个 HTTPS 站点发起请求,我们可以使用 https 模块而不是 http 模块。其他部分与发送 HTTP 请求相同。

-- -------------------- ---- -------
----- ----- - -----------------

-------------------------------- ----- -- -
  --- ---- - ---

  -------------- ------- -- -
    ---- -- ------
  ---

  ------------- -- -- -
    ------------------
  ---
-------------- ----- -- -
  -------------------------
---

上面的代码会向 https://example.com 发送一个 GET 请求。

使用第三方库

除了使用内置的 httphttps 模块,我们还可以使用一些第三方库来发起 HTTP 请求。其中一些库包括 axiosnode-fetchrequest 等。这些第三方库功能更加强大,而且更容易使用。

比如,使用 axios 发起一个 GET 请求非常简单:

-- -------------------- ---- -------
----- ----- - -----------------

-------------------------------
  ----------- -- -
    ----------------------
  --
  ------------ -- -
    -------------------------
  ---

使用 axios 发起 POST 请求也很简单:

-- -------------------- ---- -------
----- ----- - -----------------

----- ---- - -
  ----- --------
  ---- ---
  ------ -------------------
--

--------------------------------------- -----
  ----------- -- -
    ----------------------
  --
  ------------ -- -
    -------------------------
  ---

上面的代码会向 http://example.com/submit 发送一个 POST 请求,请求体中包含 nameageemail 等数据。

总结

在 Node.js 中,我们可以使用内置的 httphttps 模块来发起 HTTP 请求,也可以使用一些第三方库来简化操作。无论使用什么方法,都要注意请求头、请求体和响应的处理。通过以上方法,你可以方便地获取数据,并将其用于各种前端应用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6496c71448841e98943fe010

纠错
反馈