一、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)
})