更新记录

1.0.0(2025-06-30) 下载此版本

本请求封装基于 UniApp 的 uni.requestXMLHttpRequest,结合 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.requestXMLHttpRequest,结合 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

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问