uniapp 数据请求封装以及通用使用

import urlConfig from './config.js'

const request = {}
const headers = {}
const PORT1 = '/baseinfo'



request.globalRequest = (url, method, data, power) => {
	/*     权限判断 因为有的接口请求头可能需要添加的参数不一样,所以这里做了区分
	== 不通过access_token校验的接口
	== 文件下载接口列表
	== 验证码登录 */

	switch (power) {
		case 1:
			// headers['X-Token'] = ''
			break;
		case 2:
			// headers['X-Token'] = ''
			break;
		case 3:
			responseType = 'blob'
			break;
		default:
			headers['X-Token'] = uni.getStorageSync('token');
			break;
	}

	return uni.request({
		url: urlConfig + url,
		method,
		data: data,
		dataType: 'json',
		header: headers
	}).then(res => {
		if (res[1].statusCode == 200 && res[1].data.code == 0) {
			return res[1];
		} else if (res[1].statusCode == 406 && res[1].data.code == 0) {
			//@todo
			//未登录
			return res[1];
		} else {
			console.error(res[1].data);
			return res[1];
		}
	}).catch(parmas => {

		switch (parmas.code) {
			case 401:
				uni.clearStorageSync()
				break
			default:

				break
		}

	})
}

request.globalUploadImg = (url, name, fileType, data, uploadSuccess, uploadMethod) => {
	return uni.chooseImage({
		success: (chooseImageRes) => {
			const token = uni.getStorageSync('token');
			const tempFilePaths = chooseImageRes.tempFilePaths;
			const uploadTask = uni.uploadFile({
				url: urlConfig + url, //仅为示例,非真实的接口地址
				filePath: tempFilePaths[0],
				name: name,
				formData: data,
				fileType: fileType,
				header: {
					'X-Token': token
				},
				success: (uploadFileRes) => {
					// console.log(uploadFileRes.data);
					if (uploadSuccess && (typeof uploadSuccess === "function")) {
						uploadSuccess(uploadFileRes)
					}
				}
			});
			if (uploadMethod && (typeof uploadMethod === "function")) {
				uploadMethod(uploadTask);
			}

		}
	}); 

}
request.globalUploadFile = (url, filePath, name, fileType, data, uploadMethod, uploadSuccess) => {
	const token = uni.getStorageSync('token');
	return uni.uploadFile({
		url: urlConfig + url, //仅为示例,非真实的接口地址
		filePath: filePath,
		name: name,
		formData: data,
		fileType: fileType,
		header: {
			'X-Token': token
		},
		success: (uploadFileRes) => {
			
			let jsondata = JSON.parse(uploadFileRes.data)
			if(jsondata.code==0){
				uploadSuccess(jsondata);
			}else{
				uni.showToast({
				    title: '网络异常,请稍后重试',
				    duration: 2000
				});
			}
			
		}
	});

}
export default request

 

let url_config = ""


if (process.env.NODE_ENV === 'development') {
	// 开发环境
	url_config = ''
	// url_config = ''
} else {
	// 生产环境
	// url_config = ''

}

export default url_config
import request from '@/common/request.js'
import {
	formatGetUri
} from '@/common/util.js'

const api = {}

//微信和成长值组合支付
api.amountAndWXPay  = params => request.globalRequest('/index/Pay/amountAndWXPay','Post',params);

	
export default api

三份代码文件名依次为:request.js     config.js    api/index.js

 

使用示例

aDdetail: function() {
				const _self = this;
				_self.$api.aDdetail({请求参数})
					.then(res => {
						返回结果
					}).catch(res => {

					})
			},

 

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在uni-app中封装通用api接口请求可以通过以下步骤进行: 1. 首先,在utils文件夹下创建一个request.js文件,用于封装请求方法和设置请求的基地址。 2. 在request.js文件中,可以使用export关键字导出一个基地址baseURL和一个封装请求函数request。 3. 在request函数中,使用uni.request方法发送网络请求,传入相应的参数,包括请求地址、请求方法、请求数据请求头信息。 4. 在成功回调函数success中,可以根据后端接口返回的数据进行相应的处理。如果返回的code为1,表示请求成功,可以通过resolve方法返回数据给调用者。如果返回的code为401,表示授权过期或未登录,可以跳转到登录页面并清除本地缓存。如果不满足以上条件,可以通过reject方法返回错误信息给调用者。 5. 在失败回调函数fail中,可以通过reject方法返回接口请求失败的错误信息。 通过以上步骤,我们可以实现对uni-app中api接口请求封装,方便统一管理和调用。具体的代码实现可以参考上述引用的示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [uni-app接口请求封装](https://blog.csdn.net/Yi2008yi/article/details/131959224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [uniapp 接口封装](https://blog.csdn.net/m0_46846526/article/details/126362687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值