news 2026/10/14 1:58:17

uni-request 重磅发布:三端统一网络请求新标准

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
uni-request 重磅发布:三端统一网络请求新标准

v0.1.0 为首个可用版本:以uni.request为唯一底层依赖、不重造网络栈,把 URL 拼接、header 合并、超时取消、错误收敛这些每次都要重写的重复劳动收进一套 axios 心智的 API。Web / 微信小程序 /
Android 三端编译验证通过,Web 端 15 项真实网络测试矩阵全部通过。

一、为什么做这个库

直接用uni.request写业务,三件事反复发生:

  • 重复封装:URL 与 query 拼接、header 合并、超时与取消、失败形态归一——每个项目封装一遍,换个项目再来一遍
  • 多端差异:编码行为、失败返回在各端存在差异,逐端排查成本高
  • 类型缺位:uni.request泛回调风格,错误码散落字符串,业务侧只能as any

unix-request 把这些收敛成一套库:写过 axios 的开发者看一眼 API 就能上手;多端发布由库内确定性实现抹平差异;全链路强类型标注。

二、核心能力

请求主入口 + 七种快捷方法

import { request, get, post } from '@/uni_modules/ux-request' // 泛型静态标注 res.data 类型 request<UTSJSONObject>({ url: '/api/http/method/get', method: 'GET' }) // 快捷方法:method 由方法名固定注入(delete 为 UTS 保留字,命名 del) get<UTSJSONObject>('/users', { params: { page: 1 } as UTSJSONObject }) post<UTSJSONObject>('/login', { user: 'demo' } as UTSJSONObject, null)

默认实例开箱即用,configureRequest配置全局默认;createRequest(defaults)创建隔离实例(defaults 与拦截器注册表互不影响),心智对标axios.create。

拦截器

请求 / 响应拦截器多枚有序注册、可ejectInterceptor(id)移除;响应错误链支持三条路径——恢复(返回响应)/换错(返回新错误)/放行(返回null),语义对标 axios。

统一可预测的错误结构

RequestError收敛 8 类错误码(ERR_PARAM/ERR_CONFIG/ERR_CANCELED/ERR_TIMEOUT/ERR_NETWORK/ERR_BAD_REQUEST/ERR_BAD_RESPONSE/ERR_NATIVE),原生errCode经nativeErrCode
原值透传不翻译,config与response原文挂载——4xx/5xx 响应体不丢失。

确定性 URL 与参数处理

baseURL自动拼接(http(s) 开头原样使用)、params与 url 既有 query 合并后由库内统一编码(encodeURIComponent+ JSON 序列化兜底)、GET/HEAD 的UTSJSONObject
请求体自动并入 query、header 三级浅合并(内置默认 → 实例默认 → 请求级)。

请求取消

import { createCancelSource } from '@/uni_modules/ux-request' const source = createCancelSource() request<UTSJSONObject>({ url: '/heavy', cancelToken: source.token }) // 离开页面时: source.cancel('page unloaded') // 确定性 abort,请求以 ERR_CANCELED reject

逃生舱

onTask透出原生RequestTask(chunked 分块监听等高级场景);enableQuic/sslVerify/withCredentials/enableChunked等原生能力参数全量透传不抹平。

三、平台支持现状

平台状态
Web✅ 编译产物验证,15 项真实网络测试矩阵全部通过
微信小程序✅ 产物验证通过;15 项矩阵待开发者工具人工实测
Android✅ 云打包 release 编译零错误;真机矩阵待真机验证
iOS / 鸿蒙⏳ 代码已适配,受环境限制暂未实测(iOS 需 macOS、鸿蒙需 DevEco Studio)

四、快速上手

pnpmadd@meng-xi/unix-requestmkdir-puni_modules&&cp-Rnode_modules/@meng-xi/unix-request uni_modules/ux-request
import { request, configureRequest } from '@/uni_modules/ux-request' import type { RequestError } from '@/uni_modules/ux-request' configureRequest({ baseURL: 'https://your.api', timeout: 10000, header: null, validateStatus: null // null 表示沿用内置默认(2xx) }) request<UTSJSONObject>({ url: '/api/http/method/get' }).then((res) => { console.log('statusCode=' + res.statusCode.toString()) }).catch((err) => { const e = err as RequestError console.log(e.code, e.errMsg) })

不想搭工程?安卓真机可直接下载体验 App:下载体验 App(APK)——上述示例工程的云打包产物,安装后即可在真机运行全部用例。

五、文档与资源

  • 📖 完整文档(指南 15 篇 + API 16 篇,中英双语)
  • 📝 更新日志

六、交流与关注

想了解设计思路与实现原理(UTS 泛型跨端、错误体系收敛、取消的确定性 abort 等)?公众号「梦曦工作室」有系列解析,扫码关注:

相关链接

  • 示例工程 packages/playground(11 个功能页验证矩阵,三端可跑)
  • API 参考

欢迎反馈与共建:GitHub

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 1:58:07

ai写论文哪个软件最好?毕夏AI用“全流程”回答了这个问题

毕夏AI官网&#xff1a;www.bixiaai.com 微信公众号搜一搜&#xff1a;毕夏AI官网 先别急着要答案 每次被问到“ai写论文哪个软件最好”&#xff0c;我都会想起一个场景&#xff1a;答辩现场&#xff0c;评委问学生“你这篇论文最核心的研究问题是什么”&#xff0c;学生翻…

作者头像 李华
网站建设 2026/10/14 1:57:35

02:财务管理

/*** 题目名称&#xff1a;财务管理 <p>* 题目来源&#xff1a;http://noi.openjudge.cn/ch0105/02/ <p>* 程序功能&#xff1a;计算12个月的平均月末结余** author 潘磊&#xff0c;just_panleijust.edu.cn* version 1.0*/import java.util.Scanner;public class …

作者头像 李华
网站建设 2026/10/14 1:56:44

无人机视角船只检测:YOLO11在海上搜救中的实战指南

简介&#xff1a;无人机视角下的船只检测与水上目标识别是海上搜救、港口监控等任务的关键环节。这套基于Ultralytics YOLO11的完整资源包面向目标检测初学者与无人机视觉研究者&#xff0c;内置标注数据集、训练好的模型权重及配套使用教程&#xff0c;可直接用于YOLOv5/v8/v9…

作者头像 李华
网站建设 2026/10/14 1:56:10

自动驾驶决策规划控制全链路解析:从行为决策到运动规划

简介&#xff1a;这是一份《决策规划控制讲义》PDF&#xff0c;源自“忠厚老实的老王”主讲的自动驾驶课程&#xff0c;面向算法工程师、车辆工程学生及对智能驾驶原理感兴趣的学习者&#xff0c;系统梳理了决策规划与控制的核心知识框架。资源为1个PDF文件&#xff0c;大小约6…

作者头像 李华
网站建设 2026/10/14 1:56:04

STM32F051 IAP实战:Flash分区、中断向量表重映射与Bootloader跳转

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:55:19

React Native卡片拖拽动画实战:手势+物理动画+性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华