uniapp 请求后端的封装

uniapp 请求后端的封装

// 请求后端的封装

// 请求的后端url前缀,形如:http://ip:port/,一般会在名为config.js中配置
const BACKENDURL = 'http://192.168.190.171:8888/';

// 类型
const TYPE_JSON = "application/json";
const TYPE_FORM = "application/x-www-form-urlencoded";

// 方式
const METHOD_GET = "get";
const METHOD_POST = "post";

// url封装
function urlWrapper(url){
	return BACKENDURL + url;
}

// 请求参数封装
function dataWrapper(data){
	return data;
}

// 请求头封装
function headerWrapper(header){
	return header;
}

// 成功后的处理
function successWrapper(resolve, reject, res){
	if(res.statusCode == '200'){
		resolve(res.data);
	}else{
		// 后端成功返回,但是状态码不是200,
		showMsg("请求失败,请重试");
	}
}

// 提示信息
function showMsg(title = "未知错误,请重试"){
	uni.showToast({
		title, icon: 'none'
	})
}

// 基础的请求方法,默认是application/json,返回一个Promise对象
function baseRequest(url, data, method, header){
	// dataType: json 会对返回数据做一次JSON.parse
	const promise = new Promise((resolve, reject) => {
		uni.request({
			url: urlWrapper(url), data: dataWrapper(data), method: method, header: headerWrapper(header), dataType: "json",
			success: (res) => {
				// 后端成功返回数据,但不表示http状态码是200
				successWrapper(resolve, reject, res);
			},
			fail: (err) => {
				// 未请求到后端,或其他错误
				showMsg();
			}
		})
	});
	return promise;
}

/*
	使用方式,在其他js文件中,import api from '../requestBackEnd.js',注意文件路径
	在页面调用:api.postJson("test/save", param);
*/
// 对外提供的方法
export default {

	// get请求的json
	getJson(url, data){
		return baseRequest(url, data, METHOD_GET, {"Content-Type": TYPE_JSON});
	},

	// post请求的json
	postJson(url, data){
		return baseRequest(url, data, METHOD_POST, {"Content-Type": TYPE_JSON});
	},

	// get请求的form
	getForm(url, data){
		return baseRequest(url, data, METHOD_GET, {"Content-Type": TYPE_FORM});
	},

	// post请求的from
	postForm(url, data){
		return baseRequest(url, data, METHOD_POST, {"Content-Type": TYPE_FORM});
	},

	// 可自定义的请求
	request(url, data, method, header){
		return baseRequest(url, data, method, header);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值