跳到主要内容

请用代码显示如何封装小程序请求 ?

参考答案:

封装小程序请求通常涉及使用微信小程序的内置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()来处理成功和失败的响应。

请注意,这只是一个简单的示例,你可能需要根据你的具体需求来修改和扩展它,比如添加请求超时处理、错误重试逻辑、请求拦截器等。