【鸿蒙优选三方库】@ohos/axios:前端转鸿蒙,网络层几乎不用改

【鸿蒙优选三方库】@ohos/axios:前端转鸿蒙,网络层几乎不用改

鸿蒙原生的 @ohos.net.http 没有 Promise、没有拦截器,鉴权和错误处理要在每个请求里重写一遍。@ohos/axios 把大家熟悉的 Axios 原样搬了过来------API 一致,改个 import 就能跑。
📦 仓库地址 | ohpm install @ohos/axios | v2.2.13 | MIT


它解决什么问题

写过前端的人都知道 axios 有多顺手:.then().catch() 链式调用、拦截器统一加 Token、FormData 上传、AbortController 取消请求。

到了鸿蒙,这些全要重新造:回调嵌套、每个请求手写 header、文件上传下载自己拼流。老项目迁移过来,网络层几乎等于重写。

@ohos/axios 在底层封装 @ohos.net.http,对外暴露原汁原味的 Axios API。前端经验直接复用。


核心能力

能力 说明
Promise API 告别回调地狱
请求/响应拦截器 鉴权、日志、错误兜底统一处理
泛型支持 ArkTS 下显式指定返回类型,类型安全
上传下载 FormData、URI、ArrayBuffer、断点续传
进度回调 v2.2.13 起普通 GET/POST 也能监听进度
取消请求 AbortController
企业级安全 自定义 CA、双向 mTLS、国密 SSL、证书锁定
性能计时 performanceTiming 给出 DNS/TCP/TLS 各阶段耗时

30 秒上手

ArkTS 不支持隐式 any,调用时显式指定泛型即可:

typescript 复制代码
import axios, { AxiosResponse, AxiosError } from '@ohos/axios'

interface UserInfo { id: number; name: string }

// 拦截器统一加 Token,一次配置全局生效
axios.interceptors.request.use((config) => {
  config.headers['Authorization'] = 'Bearer ' + getToken()
  return config
})

axios.get<UserInfo, AxiosResponse<UserInfo>, null>('/user?ID=12345')
  .then((res: AxiosResponse<UserInfo>) => console.info(res.data.name))
  .catch((err: AxiosError) => console.error(err.message))

三个泛型参数:T 是 response.data 的类型,R 是完整响应类型,D 是请求体类型(GET 传 null)。

下载文件带进度:

typescript 复制代码
axios({
  url: 'https://example.com/photo.jpg',
  method: 'get',
  filePath: getContext(this).cacheDir + '/photo.jpg',
  onDownloadProgress: (e) => {
    console.info(`${Math.ceil(e.loaded / e.total * 100)}%`)
  },
})

社区已解决的典型问题

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

拦截器返回的 config 传入 getUri 时触发日志打印逻辑异常。已在 #466 修复。升级后建议对 getUri 做一轮冒烟测试。

安全漏洞 (#462)

用户报告新漏洞,已修复 CVE-2026-67314、CVE-2026-67315、CVE-2026-67318。仓库有专门的 CVE 响应流程。

普通请求想要进度回调 (#460)

此前只有文件上传下载支持进度。v2.2.13 起,设了进度回调的请求自动切到流式模式,GET/POST 都能监听。注意此时 performanceTiming 为 undefined,两者不可兼得。


适合谁用

  • 从 Web/RN 迁移到鸿蒙:网络层几乎平移
  • 中后台应用:拦截器统一处理 Token 刷新、401 跳登录
  • 有上传下载需求:图床、附件、断点续传开箱即用
  • 金融政企:mTLS、国密 SSL、证书锁定一条龙
  • 前端转鸿蒙的开发者:零学习成本

451 个 Issue 已关闭。遇到怪问题先去 Issue 列表 搜一下,大概率有人踩过。

相关推荐
redtank20004 分钟前
纯血鸿蒙学习效率三件套实测:背单词艾宾浩斯曲线、时间记录与睡眠辅助
学习·华为·harmonyos
打工仔折腾 AI18 分钟前
鸿蒙移动端直连 Windows 远程桌面配置与性能调优实践
人工智能·windows·后端·python·华为·性能优化·harmonyos
罗四强21 分钟前
第10篇:打包上架:签名、打包 HAP、发布到华为应用市场
分布式·操作系统·harmonyos·arkts·鸿蒙系统
Ramble_Naylor31 分钟前
Rust深度解读:高性能 Web 网关与 Axum 架构剖析
前端·架构·rust
程序员飞哥31 分钟前
AI 编程额度怎么用才不浪费?
java·前端·后端
柳杉32 分钟前
用 Codex 魔改卡神开源的 AIHOT,我做了个 3D 技术雷达
前端·aigc
王亚博_Abel34 分钟前
AI 编程时代怎么选前端框架?同一个应用让 Agent 用 12 种框架各写 5 遍,我整理出这套选型方法
前端·人工智能·前端框架
不在逃避q38 分钟前
Chrome 扩展安全攻防实录:从攻击面到防御实践
前端·chrome·安全
砚凝霜40 分钟前
保姆级 | CTF Lemon:禁用右键/F12 怎么破?查看源码 + HTML 注释拿 flag
前端·html
IT_陈寒1 小时前
Vite开发实战:从入门到精通
前端·人工智能·后端