Skip to content

request 网络请求

简述

基于 uni.request 封装的网络请求工具,支持拦截器、超时与统一错误处理。

注意

注意: 请以 uni_modules/mms-unix 与本文为准;各端差异以 uni-app 与各平台官方文档为准。涉及隐私能力(相册、定位、剪贴板、手机号等)需在 manifest 与后台完成配置。

平台差异说明

App(vue)App(nvue)H5小程序

基本使用

uts
import { request } from 'mms-unix/libs/request'

// GET 请求
const getList = async () => {
	const res = await request.get('/api/list', { page: 1 })
	return res.data
}

// POST 请求
const createData = async (data) => {
	const res = await request.post('/api/create', data)
	return res.data
}

配置

基础配置

uts
import { configure } from 'mms-unix/libs/request'

configure({
	baseURL: 'https://your-api-domain.com',
	timeout: 10000,
	showError: true // 是否自动显示错误提示
})

API

request(options)

发起请求

uts
request({
	url: '/api/xxx',
	method: 'POST',
	data: {}
}).then(res => {
	console.log(res.data)
}).catch(err => {
	console.error(err)
})

request.get(url, params?)

GET 请求

uts
request.get('/api/list', { page: 1 })

request.post(url, data?)

POST 请求

uts
request.post('/api/create', { name: 'test' })

request.put(url, data?)

PUT 请求

request.delete(url, data?)

DELETE 请求

拦截器

uts
import { addInterceptor } from 'mms-unix/libs/request'

// 请求拦截器
addInterceptor('request', (config) => {
	// 添加 token
	const token = uni.getStorageSync('token')
	if (token) {
		config.header = {
			...config.header,
			'Authorization': `Bearer ${token}`
		}
	}
	return config
})

// 响应拦截器
addInterceptor('response', (response) => {
	// 可以统一处理返回数据
	if (response.data.code !== 0) {
		uni.showToast({ title: response.data.msg, icon: 'none' })
		return Promise.reject(response.data)
	}
	return response.data
})

返回格式

默认约定后端返回格式:

json
{
	"code": 0,
	"msg": "success",
	"data": {}
}

错误处理

  • 网络错误自动提示
  • 业务错误根据 code 处理
  • 支持自定义错误处理回调

Released under the MIT License.