一、request封装
- 创建一个api文件夹,用于存放所有的API接口文件。
- 在api文件夹中创建一个request.js文件,用于配置接口的路由信息、请求地址和请求方法等信息。示例代码如下:
const BASE_URL = 'http://example.com/api' // 替换为你的接口基础URL export const request = (url, method = 'GET', data = {}) => { return new Promise((resolve, reject) => { uni.request({ url: BASE_URL + url, method: method, data: data, header: { 'Content-Type': 'application/json' // 根据接口要求设置请求头 }, success: res => { if (res.statusCode === 200) { resolve(res.data) } else { reject(res) } }, fail: err => { reject(err) } }) }) }
在上述代码中,我们首先定义了接口的基础URL BASE_URL
,然后封装了一个request
函数,用于发起请求。该函数接收三个参数:url
表示请求的具体路径,method
表示请求方法,默认为GET
,data
表示请求的参数,默认为空对象。
在request
函数内部,我们通过uni.request
发起请求,将请求的URL拼接为完整的请求路径,并根据传入的参数设置请求的方法、数据和请求头。当请求成功时,如果statusCode
为200,则将返回的数据通过resolve
传递出去;否则,将返回的错误信息通过reject
传递出去。当请求失败时,也会将错误信息通过reject
传递出去。
使用封装的请求函数时,可以在其他地方引入request.js
文件,并调用request
函数发起请求,例如:
import { request } from '@/api.js' // 发起GET请求 request('/user', 'GET') .then(res => { console.log(res) }) .catch(err => { console.error(err) }) // 发起POST请求 request('/login', 'POST', { username: 'admin', password: '123456' }) .then(res => { console.log(res) }) .catch(err => { console.error(err) })