返回

uniapp跨平台应用的请求封装

前端

前言

在uniapp开发中,经常需要发送网络请求来获取数据或提交数据。如果每次都手动编写请求代码,会很繁琐且容易出错。因此,我们可以对请求代码进行封装,以便在需要的时候直接调用封装好的函数即可。

封装方法

1. 创建一个请求函数

首先,我们需要创建一个请求函数,这个函数将负责发送请求并处理响应。我们可以将这个函数放在一个单独的文件中,以便在需要的时候导入使用。

function request(options) {
  return new Promise((resolve, reject) => {
    uni.request({
      ...options,
      success: (res) => {
        resolve(res.data);
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
}

2. 封装不同的请求类型

在uniapp中,有五种不同的请求类型:GETPOSTPUTDELETEHEAD。我们可以根据不同的请求类型,对请求函数进行进一步封装。

function get(url, data) {
  return request({
    url,
    data,
    method: 'GET',
  });
}

function post(url, data) {
  return request({
    url,
    data,
    method: 'POST',
  });
}

function put(url, data) {
  return request({
    url,
    data,
    method: 'PUT',
  });
}

function del(url, data) {
  return request({
    url,
    data,
    method: 'DELETE',
  });
}

function head(url, data) {
  return request({
    url,
    data,
    method: 'HEAD',
  });
}

3. 添加错误处理

在实际开发中,我们可能会遇到各种各样的错误。因此,我们需要在请求函数中添加错误处理,以便在发生错误时能够及时处理。

function request(options) {
  return new Promise((resolve, reject) => {
    uni.request({
      ...options,
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data);
        } else {
          reject(res);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
}

使用封装后的请求函数

封装好请求函数后,我们就可以在需要的时候直接调用这些函数来发送请求了。

// 发送一个GET请求
get('https://example.com/api/users').then((res) => {
  console.log(res);
});

// 发送一个POST请求
post('https://example.com/api/users', {
  name: 'John Doe',
  email: 'johndoe@example.com',
}).then((res) => {
  console.log(res);
});

总结

通过对请求代码的封装,我们可以使uniapp开发更加便捷和高效。同时,封装后的请求函数也更易于维护和扩展。