uniApp请求封装模板

const Tips = (title) => {
	uni.showToast({
		title
	})
}
const baseURL = "http://192.168.31.86:9081";
// 普通请求
export default async function request(params) {
	return new Promise((reslove, reject) => {
		if (params.loading) uni.showLoading();

		uni.request({
			url: baseURL + params.url,
			method: params.method,
			header: params.header || {},
			data: params.data,
			complete: () => {
				if (params.loading) uni.hideLoading();
			},
			success: (res) => {
				if (res.statusCode == 200) {
					if (res.data.code == 200) {
						reslove(res.data);
					} else if (res.data.code == 401) {
						return Tips('登录过期,请重新登录');
					} else {
						return Tips(res.data.msg);
					}
				} else {
					return Tips('网络异常,请稍后再试!');
				}
			},
			fail: (err) => {
				console.log(err);
				return Tips('连接失败,请稍后再试!');
			}
		})
	})
}
// 上传请求
export function uploadFile(params) {
	return new Promise((resolve, reject) => {
		if (params.loading) uni.showLoading({
			title: '上传中...'
		});

		uni.uploadFile({
			url: baseURL + params.url,
			filePath: params.filePath,
			name: params.name || 'file',
			formData: params.formData || {},
			header: params.header || {},
			complete: () => {
				if (params.loading) uni.hideLoading();
			},
			success: (uploadFileRes) => {
				// uploadFile 的响应通常是字符串,需要解析为 JSON
				let res;
				try {
					res = JSON.parse(uploadFileRes.data);
				} catch (e) {
					return Tips('解析响应失败');
				}

				if (uploadFileRes.statusCode == 200) {
					if (res.code == 200) {
						resolve(res);
					} else if (res.code == 401) {
						Tips('登录过期,请重新登录');
						reject(res);
					} else {
						Tips(res.msg || '上传失败');
						reject(res);
					}
				} else {
					Tips('网络异常,请稍后再试!');
					reject(uploadFileRes);
				}
			},
			fail: (err) => {
				console.error(err);
				Tips('连接失败,请稍后再试!');
				reject(err);
			}
		});
	});
}

具体使用:

// 引入 request 文件
import request from '@/utils/request.js'
import uploadFile from '@/utils/request.js'

// 分页查询学习列表
export const pageStudyInfo = (params) => {
	return request({
		url: '/upload',
		method: 'post',
		data: params,
		header: {} // 自定义
	})
}
// 文件上传
export const upload = async (filePath) => {
	try {
		const result = await uploadFile({
			url: '/api/upload',
			filePath: filePath,
			name: 'image',
			formData: {
				'file': 'file'
			},
			loading: true,
			loadingText: '上传中...'
		});
		console.log('上传成功:', result);
		return result; // 返回上传结果
	} catch (error) {
		console.error('上传失败:', error);
		throw error; // 抛出错误,让调用者可以进行错误处理
	}
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值