微信小程序网络请求封装

小伙伴们在公司里可能会碰到用原生语法开发的,这里就会碰到需要发起请求,需要携带token,不用拼接过多的路径,以及token失效返回登录页的重定向等操作可以使用更加方便下面就是配置请求;

1:第一步可以在项目目录下创建一个request文件夹我这里是为了方便在utils文件夹里创建了一个request.js文件

 2:下面是request.js文件的配置代码;
const baseURL = '项目的基地址 https:xxxxxx';

async function request(url, method, data) {
  const token = wx.getStorageSync('token')   //我这里是把token存储起来到本地的,可以用别的
  return new Promise((resolve, reject) => {
    wx.request({
      url: baseURL + url,
      method: method,
      data: data,
      header: {
        'token': `${token}`,   //这个地方也不是固定的看你们项目的格式 有的是 Bear XXXXX
        // 'Content-Type': 'application/json', // 根据你的请求需要设置合适的Content-Type
      },
      success: (res) => {
        if (res.statusCode === 200) {
          if (res.data.code === 1000) {    //下面是返回token失效的code,然后这只的重定向
            wx.redirectTo({
              url: '/pages/my/unLogin/index',
            })
            reject('Token Invalid');
          } else {
            resolve(res.data);
          }
        } else {
          reject(res);
        }
      },
      fail: (error) => {
        reject(error);
      },
    });
  });
}

//下面我只写了两种请求方式,这个根据你项目请求方式来添加就好了,东西都是一样的,然后导出就行

async function get(endpoint, data, token) {
  return await request(endpoint, 'GET', data, token);
}

async function post(endpoint, data, token) {
  return await request(endpoint, 'POST', data, token);
}
//这里就是把post和get请求导出  
export default {
  get,
  post,
};
3: 可以在项目任意页面导入,要在js文件导入,下面是在项目里导入使用的方法;是在page上方导入 

4:上述import request 可以替换任意字符 一般写vue都是axios 这里也可以更换的  如果替换了下面使用也需要用你替换的字符来写;

 

小伙伴们学会了吗?其实很简单! 

在Vue框架中,若要将微信小程序的接口操作封装以便在UniApp中复用,可以使用UniApp提供的`uni.request`方法,它是一个基于Promise的网络请求API。以下是基本的封装步骤以及涉及的响应拦截和设置请求头: 1. 引入uni.request: 首先,在Vue组件的script部分引入`uni`对象,它是 UniApp 的核心API之一。 ```javascript import { uni } from '@dcloudio/uni-app' ``` 2. 定义接口函数: 创建一个自定义函数,如`wxRequest`,接受请求配置对象作为参数,并返回一个Promise。 ```javascript export const wxRequest = async (config) => { try { return await uni.request(config); } catch (error) { // 处理错误,例如日志记录或通知用户 console.error('Network error:', error); throw new Error(error.message); // 或者根据需要抛出错误信息 } } ``` 3. 设置请求头: 在配置对象`config`中,你可以通过`headers`属性添加自定义的请求头。例如,设置"Content-Type"为JSON格式: ```javascript const headers = { 'Content-Type': 'application/json', }; const config = { url: 'https://your-api-url.com', // 将此处替换为实际的API地址 method: 'POST', // 请求方式 data: { key: 'value' }, // 发送的数据 headers, }; await wxRequest(config); ``` 4. 响应拦截: 虽然uni.request本身提供了一定程度的错误处理,但在全局范围内,你可能希望对所有请求都统一处理响应状态。可以通过Vue的生命周期钩子或Vuex的状态管理来实现。例如,可以在`created`或`mounted`阶段设置一个全局的响应拦截器: ```javascript export default { created() { uni.request.onShowLoading({ title: '加载中...', mask: true, success() { this.$store.dispatch('clearError')(); // 清除之前的错误 }, }); uni.request.onError((err) => { this.$store.commit('setError', err); // 存储错误并显示给用户 }); }, // ... }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值