更新记录
1.0.0(2025-06-30)
下载此版本
本请求封装基于 UniApp 的 uni.request
和 XMLHttpRequest
,结合 Vue 3 项目,包含:
- 全局基础 URL 配置
- 支持自动带 Token(Bearer)
- 支持请求签名(基于参数、时间戳、版本号、Token,使用 SHA256 签名)
- 防止重复请求(防止用户连续点击触发多次相同请求)
- 请求加载提示(可定制文字)
- 错误码统一处理与提示(401、500、其他)
- 支持流式请求(SSE)处理,适合 AI 聊天、ChatGPT 类接口
- WebSocket 多连接支持,心跳检测与自动重连机制
平台兼容性
uni-app(4.72)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
uni-app x(4.72)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
√ |
√ |
√ |
√ |
√ |
√ |
其他
UniApp + Vue3 请求封装使用说明(含签名、防重复请求、流式请求 & WebSocket)
功能概述
本请求封装基于 UniApp 的 uni.request
和 XMLHttpRequest
,结合 Vue 3 项目,包含:
- 全局基础 URL 配置
- 支持自动带 Token(Bearer)
- 支持请求签名(基于参数、时间戳、版本号、Token,使用 SHA256 签名)
- 防止重复请求(防止用户连续点击触发多次相同请求)
- 请求加载提示(可定制文字)
- 错误码统一处理与提示(401、500、其他)
- 支持流式请求(SSE)处理,适合 AI 聊天、ChatGPT 类接口
- WebSocket 多连接支持,心跳检测与自动重连机制
依赖说明
uni-app
运行环境
crypto-js
用于签名计算(SHA256)
- Vue 3(组合式 API)
代码结构
/src
/utils
request.js // 请求封装主文件
signatureUtil.js // 签名工具
auth.js // token获取函数
common.js // 公共工具(toast、参数转换等)
errorCode.js // 错误码与消息映射
websocket.js // WebSocket 封装模块
/config // 全局配置,如 baseUrl
```bash
## 签名函数示例(signatureUtil.js)
```bash
import CryptoJS from 'crypto-js'
import { getToken } from './auth'
export default function generateSignedParams({ param, timestamp, version }) {
const token = getToken() || ''
const baseString = JSON.stringify(param) + timestamp + version + token
const signature = CryptoJS.SHA256(baseString).toString()
return {
...param,
timestamp,
version,
signature
}
}
```bash
## 普通请求方法
```bash
request({
url: '/api/user/info',
method: 'get',
params: { userId: 123 },
withToken: true, // 是否自动带Token和签名
loading: true, // 是否显示loading
loadingText: '加载中',
unique: true, // 是否防重复请求
retry: 2 // 超时重试次数
})
```bash
## 流式请求(SSE) 方法
```bash
request.stream({
url: '/app/stream/kagCompletions',
method: 'post',
data: { prompt: [...] },
withToken: true,
loading: true,
onMessage: (raw, json) => { /* 处理每段数据 */ },
onEnd: () => { /* 完成回调 */ },
onError: (err) => { /* 错误回调 */ }
})
```bash
## WebSocket 使用说明 功能
```bash
1.支持多路 WebSocket 连接管理
2.心跳检测与自动重连
3.消息发送与接收回调机制
4.连接状态回调
```bash
## Android / 鸿蒙 (HarmonyOS) 平台配置说明
## 1. 环境准备
```bash
推荐使用 HBuilderX 进行开发和打包。
Android 支持直接编译为 APK。
鸿蒙支持通过快应用方式部署,兼容 Vue 3 + UniApp。
```bash
## 2. 关键配置
```bash
manifest.json 中配置 App 信息和权限。
Android 打包时设置包名、版本、最低 SDK。
鸿蒙快应用开启 quickapp.enabled。
```bash
## 3. 依赖安装
```bash
npm install crypto-js (开发时)
编译时自动打包依赖。
```bash
## 4. Token 存储与网络请求
```bash
使用 uni.getStorageSync() / uni.setStorageSync() 管理 token。
请求中自动带 token,支持签名。
```bash
## 5. WebSocket 注意点
```bash
确保使用 wss:// 安全协议。
鸿蒙设备需支持 WebSocket 标准。
服务器端须启用 TLS。
```bash