uniapp封装发送请求方式是什么

uniapp封装发送请求方式介绍

在使用uniapp开发项目时,经常需要和后端进行数据交互,而实现这种交互需要通过发送请求来获取或者提交数据。本文将介绍如何在uniapp中封装发送请求方式,方便开发者在项目中快速完成数据交互。

发送请求的常见方式

在进行数据交互时,我们通常会使用HTTP协议中的GET和POST方法。它们是向Web服务器发送请求常用的方式,GET是用于获取数据,而POST则是用于提交数据。

uniapp的网络请求封装

uniapp是一款跨平台的开发框架,因此开发者往往需要在多个平台上实现发送请求。为了方便开发者,uniapp集成了许多类似于axios的网络请求库,例如uni.request()和uni.uploadFile()等。

为了方便管理,我们通常会在项目中封装一个工具类,用于统一管理发送请求的方法。下面是一个示例代码:

export default {

get(url, data = {}) {

return new Promise((resolve, reject) => {

uni.request({

url: url,

data: data,

header: {

'Content-Type': 'application/json'

},

method: 'GET',

success: res => {

if (res.statusCode === 200) {

resolve(res.data)

} else {

reject(res)

}

},

fail: err => {

reject(err)

}

})

})

},

post(url, data = {}) {

return new Promise((resolve, reject) => {

uni.request({

url: url,

data: data,

header: {

'Content-Type': 'application/x-www-form-urlencoded',

},

method: 'POST',

success: res => {

if (res.statusCode === 200) {

resolve(res.data)

} else {

reject(res)

}

},

fail: err => {

reject(err)

}

})

})

}

}

这个工具类封装了发送GET和POST请求的方法,其中使用了Promise封装异步请求,方便使用async/await进行调用。同时,我们在header中设置了Content-Type,其中GET请求设置为application/json,而POST请求设置为application/x-www-form-urlencoded,这是常用的请求数据格式。如果需要使用其他格式,则需要修改Content-Type的值。

在使用封装好的工具类时,只需要引入该文件即可,例如:

import api from '@/utils/api.js'

api.get('/user/list', { page: 1, limit: 10 })

.then(res => {

console.log(res)

})

.catch(err => {

console.log(err)

})

请求拦截和响应拦截

在发送请求时,有时候我们需要对请求进行拦截,添加一些额外的信息,例如token等。此时,我们可以使用请求拦截器。

请求拦截器的使用方法如下:

uni.interceptors.request.use(config => {

// 在发送请求之前做些什么

config.header.token = 'xxxx'

return config

}, error => {

// 请求错误时做些什么

return Promise.reject(error)

})

在这个例子中,我们在请求拦截器中添加了token信息,使用config.header.token = 'xxxx'即可添加,其中xxxx为token的值。

除了请求拦截外,响应拦截同样也是非常重要的。比如,在接收到后端返回的数据时,我们需要判断该请求是否成功。这时,我们可以使用响应拦截器。

响应拦截器的使用方法如下:

uni.interceptors.response.use(response => {

// 对响应数据做些什么

if (response.statusCode !== 200) {

return Promise.reject(response)

} else {

return response.data

}

}, error => {

// 请求错误时做些什么

return Promise.reject(error)

})

在这个例子中,我们判断了响应的状态码,如果不是200,则认为请求失败。否则,我们则将返回的数据(response.data)进行返回。注意,在返回数据时,我们需要使用Promise.resolve()将其封装成一个Promise对象,以方便后面进行.then()或.catch()操作。

总结

本文介绍了uniapp中封装发送请求的方式,涵盖了常见的GET和POST请求方式,以及请求拦截和响应拦截的使用方法。通过合理地封装请求方式,能够提高代码的复用性和可维护性,也能够方便开发者在项目中进行数据交互。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。