当前位置:首页 > uni-app

uniapp 如何封装request请求

2026-02-05 17:52:54uni-app

封装request请求的方法

在UniApp中封装request请求可以提高代码复用性,便于统一处理错误和请求配置。以下是常见的封装方法:

基础封装示例

// utils/request.js
const baseURL = 'https://your-api-domain.com/api'

function request(options) {
  return new Promise((resolve, reject) => {
    uni.request({
      url: baseURL + options.url,
      method: options.method || 'GET',
      data: options.data || {},
      header: {
        'Content-Type': 'application/json',
        ...options.header
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data)
        } else {
          reject(res)
        }
      },
      fail: (err) => {
        reject(err)
      }
    })
  })
}

export default request

添加拦截器

// 请求拦截
function requestWithInterceptor(options) {
  // 添加token等通用header
  const token = uni.getStorageSync('token')
  const headers = {
    'Authorization': `Bearer ${token}`,
    ...options.header
  }

  return request({
    ...options,
    header: headers
  }).catch(err => {
    // 统一错误处理
    if (err.statusCode === 401) {
      uni.navigateTo({ url: '/pages/login/login' })
    }
    return Promise.reject(err)
  })
}

使用示例

import request from '@/utils/request'

// GET请求
request({
  url: '/user',
  method: 'GET'
}).then(res => {
  console.log(res)
})

// POST请求
request({
  url: '/login',
  method: 'POST',
  data: {
    username: 'admin',
    password: '123456'
  }
})

高级封装建议

uniapp 如何封装request请求

  • 添加请求超时配置
  • 实现请求取消功能
  • 添加重试机制
  • 区分开发和生产环境API地址
  • 添加请求缓存策略
  • 实现文件上传/download封装

这种封装方式可以保持代码整洁,统一管理API请求,便于后期维护和扩展。

标签: uniapprequest
分享给朋友:

相关文章

uniapp隐藏滚动条

uniapp隐藏滚动条

在UniApp中隐藏滚动条可以通过以下几种方法实现,具体根据使用场景选择: 全局样式设置(APP/H5) 通过修改全局CSS样式隐藏滚动条,适用于所有页面: ::-webkit-scrollbar…

uniapp样式库

uniapp样式库

uniapp 常用样式库推荐 uView UI uView 是专为 uniapp 设计的多端兼容 UI 框架,提供丰富的组件和工具类。支持 Vue3 组合式 API,内置主题定制功能,常用于快速构建企…

uniapp模板库

uniapp模板库

uniapp模板库推荐 官方模板库 uni-app官方提供多个模板,涵盖电商、社交、新闻等多个领域。这些模板可直接在HBuilderX中通过新建项目选择,包含基础结构和常用功能模块,适合快速启动项目。…

uniapp 如何封装request请求

uniapp 如何封装request请求

封装 request 请求的核心思路 在 UniApp 中封装请求通常基于 uni.request,通过统一处理 URL、参数、header 和拦截逻辑提升代码复用性。以下是一个完整封装方案: 创建…

uniapp接入

uniapp接入

接入UniApp的基本流程 UniApp是一个基于Vue.js的跨平台开发框架,支持一次开发,多端发布。以下是接入UniApp的基本流程: 环境准备 确保已安装Node.js(建议版本12+)和HB…

uniapp 数据

uniapp 数据

uniapp 数据管理方法 本地存储 使用 uni.setStorageSync 和 uni.getStorageSync 进行本地数据持久化存储。适合保存用户偏好设置或小型数据。 // 存储数…