请用代码显示如何封装小程序请求 ?
参考答案:
封装小程序请求通常涉及使用微信小程序的内置API,如wx.request
来发送网络请求。以下是一个简单的示例,展示了如何封装一个通用的请求函数,并处理常见的错误和响应。
首先,你需要在你的小程序项目中创建一个名为request.js
的文件,然后在这个文件中编写你的请求封装代码。
// request.js
// 封装小程序请求
function request(url, method = 'GET', data = {}) {
return new Promise((resolve, reject) => {
wx.request({
url: url,
method: method,
data: method === 'GET' ? data : { ...data, timestamp: Date.now() }, // 如果是GET请求,直接传递data;如果是POST请求,可以添加时间戳等额外数据
header: {
'content-type': 'application/json', // 默认值
// 'Authorization': 'Bearer ' + token, // 如果需要的话,可以添加token或其他认证信息
},
success: (res) => {
// 处理成功响应
if (res.data && res.data.code === 200) { // 假设服务器返回200表示成功
resolve(res.data);
} else {
reject(new Error(res.data.message || '请求失败'));
}
},
fail: (error) => {
// 处理请求失败
reject(error);
}
});
});
}
module.exports = request;
然后,你可以在其他页面中引入并使用这个封装好的request
函数。
// pages/index/index.js
const request = require('../../utils/request.js'); // 根据你的项目结构调整路径
Page({
data: {
userInfo: {}
},
onLoad: function () {
this.getUserInfo();
},
getUserInfo: function () {
request('https://api.example.com/user/info', 'GET')
.then(res => {
this.setData({
userInfo: res
});
})
.catch(error => {
console.error('请求失败:', error);
});
}
});
在这个示例中,我们创建了一个名为request
的函数,它接受一个URL、一个HTTP方法(默认为'GET')和一个数据对象作为参数。这个函数返回一个Promise,这样你就可以使用.then()
和.catch()
来处理成功和失败的响应。
请注意,这只是一个简单的示例,你可能需要根据你的具体需求来修改和扩展它,比如添加请求超时处理、错误重试逻辑、请求拦截器等。