首页 > 编程语言 >微信小程序 网络请求使用封装好的mina-request

微信小程序 网络请求使用封装好的mina-request

时间:2024-08-13 22:43:13浏览次数:12  
标签:case return 微信 request mina token errorMsg response

1、安装、安装不了的时候使用手机热点

npm install mina-request

2、构建npm

3、使用

 

import WxRequest from 'mina-request'
import {getStorage,clearStorage,setStorage}  from './storage' import {ApiPathConst,DESKeyConst} from './constVar'
// 对 WxRequest 进行实例化
const instance = new WxRequest({
  baseURL: ApiPathConst, //'https://ykzs.sstms.net/zhensuoapi', //
  timeout: 60000, // 超时时长
  isLoading: false // 是否使用默认的 loading 效果
})

// 添加请求拦截器
instance.interceptors.request = (config) => {

    // 获取本地存储的token令牌
    const token = getStorage('token');
    //console.log("拦截器token",token)
    if(token != undefined && token !=""){
        config.header["Authorization"] = "Bearer " + token;
    }
    else{  //要重置为空否则remove token后,继续请求还是会带之前的token
        config.header["Authorization"] = "";
    }
   
    return config
  }
  
  // 添加响应拦截器
  instance.interceptors.response = async (response) => {
    //console.log(response)
    // response.isSuccess = true,代码执行了 wx.request 的 success 回调函数
    // response.isSuccess = false,代码执行了 wx.request 的 fail 回调函数
      
    // response.statusCode // http 响应状态码
      
    // response.config // 网络请求请求参数
      
    // response.data 服务器响应的真正数据
      
    // 对响应数据做点什么
    const {isSuccess,data} = response
    if(!isSuccess){
        toast({
            title:'网络异常',
            icon:'error'
        })
        return Promise.reject(response)
    }
    let errorMsg = ""
    switch(data.status){
        case 200:
            return data   //成功返回data
        case 401:  //未登录
            //重新登录
            retryLogin(1)
            return Promise.reject(response)
        case 403:   //没权限
            const res = await modal({
                content:'没有操作权限',
                showCancel:false
            })
            // if(res){
            //     clearStorage()
            //     wx.navigateTo({
            //       url: '/pages/login/login',
            //     })
            // }
            return Promise.reject(response)
        case 429:  //ip限流
            errorMsg = "刷新次数过多,请稍事休息重试!"
            break
        case 404:
            errorMsg = "失败!访问接口不存在"
            break
        case 500:
            errorMsg = data.msg
            break
        case 405:
            errorMsg = "失败!请求http方法错误"
            break
        case 415:
            errorMsg = "失败!参数没有指定Body还是Query"
            break
        default:
            errorMsg = "程序出现异常,请联系客服"
            break
    }
    if(errorMsg !=""){
        toast({
            title:errorMsg,
            icon:'error'
        })
        //return Promise.reject(response)
    }
    return response
  }

  //微信登录
  export const requestWxLogin = async (params)=>{
      return await instance.get('/api/Login/wxOnLogin/',params)
  }

 

标签:case,return,微信,request,mina,token,errorMsg,response
From: https://www.cnblogs.com/handsomeziff/p/18357819

相关文章

  • npm报错:request to https://registry.npm.taobao.org failed处理办法
    今天在安装flowise的时候提示npm报错:requestto https://registry.npm.taobao.org failed,reasoncertificatehasexpired看提示是淘宝镜像过期了。找了一下资料,好像是npm淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于2022......
  • 【微信小程序开发】——高校就业招聘系统小程序的制作(文末附源码——源码+万字文档+PP
    ......
  • 小白学习微信小程序的图片处理和预览技巧
    微信小程序的图片处理和预览技巧可以通过使用微信提供的API和组件来实现。在本文中,我们将详细介绍以下几个方面的内容:图片的上传和下载:包括用户上传图片和从服务器上下载图片的方法。图片的编辑和处理:包括图片的裁剪、旋转、缩放等操作。图片的预览和查看:包括在小程序中展示图......
  • 基于Dango+微信小程序的广西东盟旅游资源信息管理系统+80003(免费领源码)可做计算机毕业
    django广西-东盟旅游资源信息管理系统小程序摘 要在社会快速发展和人们生活水平提高的影响下,旅游产业蓬勃发展,旅游形式也变得多样化,使旅游资源信息的管理变得比过去更加困难。依照这一现实为基础,设计一个快捷而又方便的基于小程序的旅游资源信息管理系统是一项十分重要并且......
  • 微信小程序备案和认证踩的坑
    个人账号的名字要求:小程序名称涉及企业/单位/商城等非个人性质,请修改为与实际小程序业务有关的名称。比如:xx平台、xx材料、材料信息、查询等字眼都是通用词汇,个人性质的账号不会过审。个人建议:因为小程序名字一年只能修改两次,所以起名字就要慎重!建议进入驳回页面,点击右上角的联系......
  • uni-app和vue及微信小程序的异同
     uni-app和vue的区别1、目录不同 uni-app目录依赖原生小程序风格,比如分包的概念 vue中对不同的页面只需要在views文件夹中定义不同组件,然后配置路由跳转就行了,所有页面都是这样, 而uni-app只有底部导航栏对应的几个页面才能定义在pages文件夹下,其余的页面都需要定义在su......
  • springboot 整合微信公众号--验证码推送(spring boot+测试号)
    一、公众号开发初探这里会使用到自己的域名进行交互,没有域名的小伙伴可以使用  内网穿透(NATAPP), 如果没有使用过的的同学请移步 20秒轻松上手NATAAPP(内网穿透)公众号整体流程:用户扫公众号二维码。然后发一条消息:验证码。我们通过api回复一个随机的验证码,并且存入re......
  • Java实现微信手机号更新:如何在后台同步客户信息
    文章目录接口说明:更新客户微信手机号码核心逻辑:获取微信手机号并更新客户信息总结在现代数字化生活中,手机号码是我们与外界联系的重要方式之一。特别是微信,作为中国最广泛使用的社交和支付平台,其绑定的手机号更是至关重要。在开发微信相关功能时,经常需要处理用户手......
  • Python中实现微信支付
    Python中实现微信支付一,准备环境1,要有微信公众号,商户平台账号https://pay.weixin.qq.com/wiki/doc/api/index.html2,支持的支付方式有 1540176727044.png3,备案域名选择扫码支付,如果使用模式二则不需要域名,只需要可访问的IP地址就行。一,扫码支付点击“扫码支付”......
  • 微信支付 Python
    需求:微信打开商品列表页面->点击商品后直接显示付款页面->点击付款调用微信支付说明微信支付需要你申请了公众号(appid,key-用于签名),商户号(mch_id,AppSecret-用于获取openid,获取code)调起微信支付的页面需要配置授权,如你的页面是http://www.shazuihuo.com/goo......