一个简单的小程序请求封装

主要是加一个加载动画啥的 ,不用每一次请求的 时候写很多请求头参数啥的,统一使用,比较方便,写的比较拉胯。支付宝这边请求是my.request啥的如果需要换成微信小程序的话吧对应改成微信小程序的API即可。

var base_url = "https://blog.csdn.net/";
/**
 * 封装网球请求接口
 * @param {String} url 请求地址
 * @param {Object} data 请求数据
 * @param {String} method 请求方式
 */
const request = (url, data = null, method = "POST") => {
	my.showLoading({
		content: "加载中..."
		//   delay: 1000,
	});
	const _url = `${base_url}${url}`;
	// const _token = getApp().globalData.token
	// GET请求方式x-www-form-urlencoded, 其他请求方式json
	const _header = {
		"Content-Type": `application/${method === "GET" ? "x-www-form-urlencoded" : "json"
			}`
		// 'Authorization': `Bearer ${_token}`
	};

	return new Promise((resolve, reject) => {
		my.request({
			url: _url,
			method: method,
			data: data,
			header: _header,
			success: res => {
				my.hideLoading();
				if (res.status === 200 && res.data.status.code == 200) {
					//   console.log(res, "api");
					resolve(res.data);
				} else {
					// console.log(res,'apierr')
					if (res.data.error == null) {
						my.showToast({
							content: "接口错误"
							//   duration: 2000
						});
					} else {
						my.showToast({
							content: res.data.error
							//   duration: 2000
						});
					}
					resolve(null);
				}
			},
			fail: err => {
				my.hideLoading();
				my.showToast({
					content: err.data.error
					//   duration: 2000
				});
				reject(err);
			},
			complete: res => {
				// 加载完成
			}
		});
	});
};
export default {
	base_url,
	request
};

在页面中使用

import api from "../../../utils/api";
api.request("api/test", {
          itemId: query.id // 事项标识
     }).then(res => {
	        this.setData({ custom: res.custom });
    });
Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐