当前位置:首页 > 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'
  }
})

高级封装建议

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

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

uniapp 如何封装request请求

标签: uniapprequest
分享给朋友:

相关文章

uniapp 消息推送

uniapp 消息推送

uniapp 消息推送实现方法 使用uniPush服务 uniapp官方提供了uniPush服务,支持iOS、Android及小程序平台的消息推送。需要在manifest.json中配置推送模块,并按…

uniapp发布到应用商店

uniapp发布到应用商店

发布到苹果App Store 确保开发者账号已注册并加入Apple Developer Program,年费99美元。在Xcode中生成iOS发布证书(.p12)和描述文件(Provisioning…

uniapp分享到facebook

uniapp分享到facebook

使用uniapp分享到Facebook的方法 在uniapp中实现分享到Facebook功能,可以通过调用原生插件或使用第三方SDK。以下是具体实现方式: 安装Facebook SDK插件 在un…

uniapp前端项目

uniapp前端项目

Uniapp 前端项目开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App 等)。以下是关于 Uniapp 前端项目的关键信息:…

uniapp面试问啥

uniapp面试问啥

技术基础类问题 UniApp框架特性 跨端实现原理及条件编译的使用场景 如何理解"一次开发,多端运行"的优缺点 rpx与vw/vh单位的适配差异 Vue相关 生命周期在Un…

uniapp斑马

uniapp斑马

uniapp 斑马相关问题解答 uniapp 斑马打印机连接与使用 uniapp 支持通过蓝牙或网络连接斑马打印机,需要借助原生插件或第三方 SDK。以下为常见方法: 蓝牙连接方式 安装 un…