成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

請求后端接口全攻略:通用封裝 + 請求攔截器,一篇就夠!

開發 后端
本文將手把手帶你掌握 uni.request 的基本用法和封裝通用請求方法。

在 UniApp 中與后端接口交互最常用的方式是 uni.request,但如果你每次都手動調用、拼地址、寫 headers,會非常冗余、易錯。

本文將手把手帶你:

  • 掌握 uni.request 的基本用法
  • 封裝通用請求方法
  • 加入請求/響應攔截器(如 token 注入、統一錯誤處理)

uni.request 基礎用法

uni.request({
  url: 'https://api.example.com/user',
  method: 'GET',
  data: { id: 1 },
  success: (res) => {
    console.log('響應數據:', res.data)
  },
  fail: (err) => {
    console.error('請求失敗:', err)
  }
})

默認支持所有平臺,包括 H5、小程序、App。

封裝通用 request 方法

我們創建一個統一的 request.js 工具模塊,集中處理:

  • 基礎 URL 拼接
  • 請求方法封裝(get/post 等)
  • token 注入(請求攔截器)
  • 狀態碼統一處理(響應攔截器)

文件目錄結構推薦

├── utils/
│   └── request.js     # 請求封裝模塊
├── config/
│   └── index.js       # 全局配置項,如 baseURL

config/index.js:配置項

export default {
  baseURL: 'https://api.example.com',
  timeout: 10000
}

utils/request.js:通用封裝

import config from '@/config/index.js'
import { get } from './storage.js'  // 用于獲取 token 等緩存

const request = (options = {}) => {
  const {
    url,
    method = 'GET',
    data = {},
    headers = {}
  } = options

  return new Promise((resolve, reject) => {
    uni.request({
      url: config.baseURL + url,
      method,
      data,
      timeout: config.timeout,
      header: {
        'Content-Type': 'application/json',
        'Authorization': get('token') || '',  // 請求攔截器:自動加 token
        ...headers
      },
      success: (res) => {
        const { statusCode, data } = res

        // 響應攔截器
        if (statusCode === 200) {
          resolve(data)
        } else {
          uni.showToast({ title: data.message || '請求錯誤', icon: 'none' })
          reject(data)
        }
      },
      fail: (err) => {
        uni.showToast({ title: '網絡異常', icon: 'none' })
        reject(err)
      }
    })
  })
}

// 快捷方法封裝
export const getRequest = (url, data = {}) => request({ url, data, method: 'GET' })
export const postRequest = (url, data = {}) => request({ url, data, method: 'POST' })

export default request

使用方式(更優雅)

示例頁面中使用:

import { getRequest, postRequest } from '@/utils/request.js'

// 獲取用戶信息
getRequest('/user/info').then(res => {
  console.log('用戶信息:', res)
})

// 提交表單
postRequest('/form/submit', { name: 'Tom' }).then(res => {
  uni.showToast({ title: '提交成功' })
})

攔截器核心能力

攔截階段

功能

請求前

自動加 token / 簽名 / 公共參數

響應后

統一處理錯誤 / 彈出提示框

請求失敗

網絡錯誤統一提示

小結

能力點

收獲

uni.request

理解基礎使用方法

模塊封裝

構建統一請求管理方式

攔截器設計

提高代碼復用性與健壯性

責任編輯:趙寧寧 來源: Ssoul肥魚
相關推薦

2021-11-03 17:04:11

攔截器操作Servlet

2021-05-08 21:42:59

微服務Nacos原理

2020-10-17 08:48:12

搞懂“智能聯接”

2022-07-19 19:39:05

RTK技術定位技術

2020-09-10 06:56:12

SringMVC源碼參數

2010-08-25 14:36:02

DHCP服務器

2009-10-12 15:06:59

2011-04-29 13:41:49

筆記本硬盤

2011-04-29 13:41:41

筆記本清潔

2011-04-29 13:41:36

筆記本液晶屏

2011-04-29 13:41:44

筆記本散熱

2011-04-29 13:41:52

筆記本電池

2011-04-29 13:41:50

2013-04-15 10:48:16

Xcode ARC詳解iOS ARC使用

2024-05-07 09:01:21

Queue 模塊Python線程安全隊列

2013-06-08 11:13:00

Android開發XML解析

2010-04-23 14:04:23

Oracle日期操作

2011-08-09 09:37:49

2010-08-04 18:03:27

NFS服務器

2021-09-29 09:00:19

Linux虛擬機CentOS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清一区二区 | 国产精品国产精品国产专区不卡 | 欧美国产一区二区三区 | 91麻豆精品国产91久久久久久久久 | 97精品国产97久久久久久免费 | 亚洲精品欧美 | 成人免费观看男女羞羞视频 | 91免费在线看 | 亚洲视频一区在线观看 | 国产一区二区在线视频 | 自拍偷拍视频网 | 欧美偷偷 | 精品国产乱码久久久久久牛牛 | 精品久久久久久久久久 | 精品国产乱码久久久久久久久 | 亚洲 自拍 另类 欧美 丝袜 | 欧美精品在线观看 | 欧美色图另类 | www.性色 | 亚洲精选一区二区 | 精品动漫一区 | 亚洲综合区 | 夜夜操天天操 | 日本欧美大片 | 麻豆久久久 | 91精品国产91久久久久久吃药 | 欧美福利在线 | 九九精品网 | 中文字幕视频在线看5 | 久久精品国产亚洲夜色av网站 | 国产电影一区二区在线观看 | 麻豆视频在线看 | 三级免费av | 一区二区视屏 | 精品啪啪 | 久久一区 | 日韩成人在线播放 | 国产ts人妖一区二区三区 | 日本黄色免费视频 | 韩日精品在线观看 | 久久免费国产 |