基于uni.app封装api接口请求,含请求拦截器响应拦截器

本文介绍了如何在uni.app项目中创建request.js文件,配置请求拦截器和响应拦截器,以及在basics.js中统一管理登录等公共接口。开发者可以借此实现更优雅的API请求处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于uni.app封装接口请求,含请求拦截器响应拦截器

一、创建request.js 文件(api文件夹=>request.js)

//配置基础地址
const BASE_URL = 'xxx'

//默认请求头 
const acquiesceContenttype = 'application/x-www-form-urlencoded'

export default {
   
	config: {
   
		// 请求拦截器
		beforeRequest(options = {
    }) {
   
			// console.log('请求拦截器', options)
			return new Promise((resolve, reject) => {
   
				options.url = BASE_URL + options.url;
				options.method = options.method || 'GET';
				options.data = options.data;
				options.timeout 
Vue框架中,若要将微信小程序的接口操作封装以便在UniApp中复用,可以使用UniApp提供的`uni.request`方法,它是一个基于Promise的网络请求API。以下是基本的封装步骤以及涉及的响应拦截和设置请求头: 1. 引入uni.request: 首先,在Vue组件的script部分引入`uni`对象,它是 UniApp 的核心API之一。 ```javascript import { uni } from '@dcloudio/uni-app' ``` 2. 定义接口函数: 创建一个自定义函数,如`wxRequest`,接受请求配置对象作为参数,并返回一个Promise。 ```javascript export const wxRequest = async (config) => { try { return await uni.request(config); } catch (error) { // 处理错误,例如日志记录或通知用户 console.error('Network error:', error); throw new Error(error.message); // 或者根据需要抛出错误信息 } } ``` 3. 设置请求头: 在配置对象`config`中,你可以通过`headers`属性添加自定义的请求头。例如,设置"Content-Type"为JSON格式: ```javascript const headers = { 'Content-Type': 'application/json', }; const config = { url: 'https://your-api-url.com', // 将此处替换为实际的API地址 method: 'POST', // 请求方式 data: { key: 'value' }, // 发送的数据 headers, }; await wxRequest(config); ``` 4. 响应拦截: 虽然uni.request本身提供了一定程度的错误处理,但在全局范围内,你可能希望对所有请求都统一处理响应状态。可以通过Vue的生命周期钩子或Vuex的状态管理来实现。例如,可以在`created`或`mounted`阶段设置一个全局的响应拦截器: ```javascript export default { created() { uni.request.onShowLoading({ title: '加载中...', mask: true, success() { this.$store.dispatch('clearError')(); // 清除之前的错误 }, }); uni.request.onError((err) => { this.$store.commit('setError', err); // 存储错误并显示给用户 }); }, // ... }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gik99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值