简介
@36node/fetch 是一个开源的 Node.js HTTP 请求库,可以在 Node.js 环境下调用 HTTP 接口,方便易用。它基于 Node.js 的 http 模块封装,支持超时、重试、拦截器等功能。
安装
使用 npm 安装 @36node/fetch:
npm install @36node/fetch
使用方法
首先,需要引用 @36node/fetch:
const fetch = require('@36node/fetch');
@36node/fetch 的主要方法是 request,默认为 GET 请求,可以通过方法链式调用灵活配置:
-- -------------------- ---- ------- ---------- -------------- --------- -------- ---- ------- -- -------------- -- - -- ------ -------- -- ---------- -- - -- ------ ----- ---
API 说明
fetch(url[, options])
fetch(url[, options])
发起一个 HTTP 请求,返回一个 Promise 对象。
url
{string} 请求的地址。options
{Object} 可选项。
options
method
{string} 请求方法。默认为GET
。headers
{Object} 请求头,用于设置 HTTP 请求头部信息。params
{Object} URL 上的查询参数。query
{Object} 请求体中的查询参数。body
{Object | string | Buffer | Readable} 请求体中的参数,可以是对象、字符串、Buffer、流等。timeout
{number} 超时时间,单位为毫秒。默认为 5 秒。retries
{number} 重试次数。默认为 0。interceptors
{Function[]} 拦截器数组。agent
{http.Agent} 代理对象。maxRedirects
{number} 最大重定向次数。默认为 5。rejectUnauthorized
{boolean} 是否验证 SSL 证书。默认为 true。
request.method(method)
设置请求方法。支持 GET
、POST
、PUT
、DELETE
。
fetch(url, { method: 'POST' });
request.headers(headers)
设置请求头部信息。
fetch(url, { headers: { 'User-Agent': 'Mozilla/5.0' } });
request.query(query)
添加查询参数到 URL 上。
fetch(url, { query: { key: value } });
request.body(body)
添加请求体参数。
fetch(url, { body: { key: value } });
request.timeout(ms)
设置超时时间,单位为毫秒。
fetch(url).timeout(3000);
request.retry(times)
设置重试次数。
fetch(url).retry(3);
request.interceptors
设置拦截器数组。
-- -------------------- ---- ------- ---------- - ------------- - - -------- ----------------- - -- ------ ------ -------- -- --------- ------------------ - -- ------ ------ --------- - - - ---
request.agent(agent)
设置代理对象。
const httpsProxyAgent = require('https-proxy-agent'); const proxy = 'http://localhost:8888'; fetch(url, { agent: new httpsProxyAgent(proxy) });
request.maxRedirects(num)
设置最大重定向次数。
fetch(url).maxRedirects(5);
request.rejectUnauthorized(boolean)
设置是否验证 SSL 证书。
fetch(url).rejectUnauthorized(false);
示例代码
-- -------------------- ---- ------- ----- ----- - ------------------------- ----- --- - --------------------- ---------- -------------- --------- -------- ---- ------- -- -------------- -- - ---------------------- -- ---------- -- - ------------------- ---
结论
@36node/fetch 是一个 Node.js HTTP 请求库,可以方便地发起 HTTP 请求,支持超时、重试、拦截器等常用功能。它的 API 设计合理,易于使用,并且具有良好的扩展性和可维护性。我们希望这篇文章可以帮助大家更好地使用 @36node/fetch。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/155219