sindresorhus/got:Node.js 环境下的 HTTP 请求库

got 在 GitHub 上已经拿到 14899 Star 了。
这是一个专为 Node.js 设计的 HTTP 请求库,功能覆盖日常开发中的大部分请求场景。

1、 核心功能

got 支持 HTTP/1.1 和 HTTP/2 协议,默认开启重试机制,请求失败时会自动重试最多两次。内置缓存功能,相同请求可以直接返回缓存结果,减少重复请求。支持请求取消,在不需要继续等待响应时可以主动终止请求。
支持 Promise 异步调用,也兼容 Stream 流处理,大文件下载场景下可以直接通过管道输出到本地文件。
正文顶部截图

2、 主要特点

got 内置超时机制,可分别设置连接超时、响应超时和整体请求超时。支持自动解析 JSON 响应,也可以自定义响应解析逻辑。支持表单提交和文件上传,不需要额外引入第三方库。
支持代理配置,可直接设置 HTTP 或 SOCKS 代理,适配不同网络环境。支持钩子功能,可在请求发送前、响应返回后等节点插入自定义逻辑,方便统一处理签名、日志等公共逻辑。
README区域截图

3、 基础使用

安装:

npm install got

发起 GET 请求:

import got from 'got';
const response = await got('https://api.example.com/users');
console.log(response.body);

发起 POST 请求:

import got from 'got';
const response = await got.post('https://api.example.com/users', {
  json: {
    name: 'test',
    age: 20
  }
});
console.log(response.body);

4、 适用场景

  • Node.js 后端服务开发,需要调用第三方 API 的场景
  • 编写爬虫脚本,需要处理大量 HTTP 请求的场景
  • 自动化测试脚本,需要模拟用户请求的场景
  • 命令行工具开发,需要与远程服务交互的场景

开源地址:https://github.com/sindresorhus/got

开源地址:https://github.com/sindresorhus/got

更多推荐