【鸿蒙优选三方库】@ohos/axios:从 Issue 看一个网络库的实战打磨

451 个已关闭的 Issue,不只是 bug 修复记录,更是一部"从踩坑到填坑"的实战指南。@ohos/axios 基于 Axios v1.3.4 适配 OpenHarmony,社区活跃度在鸿蒙三方库中名列前茅。

📦 仓库地址:https://gitcode.com/CPF-ApplicationTPC/ohos_axios | 安装:ohpm install @ohos/axios


一、库的核心能力

特性说明
Promise API.then()/.catch() 链式调用,告别回调地狱
拦截器请求/响应拦截,统一鉴权与错误处理
文件上传/下载FormData + 进度回调 + 断点续传
取消请求AbortController 优雅取消
企业级安全自定义 CA、双向 mTLS、国密 SSL、证书锁定
性能计时performanceTiming 各阶段耗时
全请求进度v2.2.13 新增,GET/POST 等均支持进度回调
自动 Cookiev2.2.12 新增,API 26+ 同实例 Cookie 共享

二、社区实战:典型 Issue 与避坑指南

1. getUri(config) 升级后报错(#464 / #467

问题:升级到 v2.2.14 后,所有使用 axios.getUri(config) 的接口报错。

原因:拦截器返回的 config 传入 getUri 时触发了日志打印逻辑,导致异常。

解决:已修复拦截器返回 config 传入 getUri 的日志打印问题(#466)。

避坑建议:升级版本后,先用 getUri 做一轮冒烟测试,因为拦截器与 getUri 的交互路径是高频出问题的地方。

2. CVE 安全漏洞修复(#462 / #461

问题:用户报告 axios 存在新的漏洞问题。

解决:修复了 CVE-2026-67314、CVE-2026-67315、CVE-2026-67318 三个安全漏洞。

避坑建议:关注仓库的 Issue 和 Release,安全漏洞修复版本要第一时间升级。@ohos/axios 有专门的 CVE 修复流程,比手改源码靠谱。

3. 普通请求支持上传下载进度(#460

用户诉求:之前只有文件上传/下载才支持 onUploadProgress / onDownloadProgress,普通 GET/POST 请求也希望有进度回调。

实现:v2.2.13 起,设置了进度回调的请求自动切换到流式模式(requestInStream()),所有普通 HTTP 请求都能监听上传/下载进度。

使用提示:设置进度回调后 performanceTiming 会变为 undefined——如需性能计时,请勿同时设进度回调。


三、快速上手

ohpm install @ohos/axios
import axios, { AxiosResponse, AxiosError } from '@ohos/axios'

// 拦截器:统一鉴权
axios.interceptors.request.use((config) => {
  config.headers['Authorization'] = 'Bearer ' + getToken()
  return config
})

// 普通请求 + 下载进度(v2.2.13 新增)
axios.get<string, AxiosResponse<string>, null>('https://api.example.com/data', {
  onDownloadProgress: (e) => {
    console.info(`下载进度: ${Math.ceil(e.loaded / e.total * 100)}%`)
  },
}).then((res) => {
  console.info(res.data)
})

四、为什么值得选它?

  1. 451 个 Issue 已解答:社区活跃,踩过的坑都有答案。
  2. 安全响应快:CVE 漏洞修复流程成熟,第一时间出补丁。
  3. 能力持续扩展:从普通请求进度到 Cookie 共享,紧跟用户需求。
  4. API 与 Web 一致:前端转鸿蒙零学习成本。
  5. 版本管理规范:CHANGELOG + 版本推荐表清晰。

完整 Issue 列表见 仓库 Issues,遇到问题先搜 Issue,大概率已有答案。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐