详解微信小程序网络请求接口封装

2023-11-17

为实现定制要求和方便调用,对微信小程序的网络请求接口进行了封装
在根目录新建api文件夹并新建httpRequest.js与config.js文件

1.设置请求域名

// 设置请求域名
let ENV = __wxConfig.envVersion
let httpUrl = '',
if (ENV == 'develop') {
  // 测试版开发环境域名
  httpUrl = 'https://*******.com/api';
} else if (ENV == 'trial') {
  // // 体验版环境域名
  httpUrl = 'http://*******.com/api';
} else if (ENV == 'release') {
  // 线上环境域名
  httpUrl = 'https://*******.com/api';
}
export default httpUrl

2.在utils下方一个qs文件

根据自己项目数据需求是否下载qs

3.封装httpRequest

import Qs from '../utils/qs'
import httpUrl from './config'
const apiRequest = (option) => {
  /*
  option.url:请求地址
  option.header:头信息
  option.params:参数
  */
  let promise = new Promise(function (resolve, reject) {
    wx.showLoading({
      title: '努力加载中',
      mask: true
    });
    // 设置请求头
    let headers = {
      'Content-Type': 'application/x-www-form-urlencoded',
      'X-Requested-With': 'XMLHttpRequest'
    }
    // 对数据进行处理转换
    let params = Qs.stringify(option.params, {
      arrayFormat: 'indices',
      allowDots: true
    }).replace(/\[\d+\]=/g, "=")
    wx.request({

      url: httpUrl.connectorUrl + option.url,
      data: params,
      method: 'post',
      header: headers,
      // 超时时间
      timeout: 60000,
      success: function (res) {
        wx.hideLoading()
        if (res.statusCode == 200) {
          res = res.data
          if (res.code == -1) {
            // 跳转到登录

          } else if (res.code == 2) {
            wx.showModal({
              title: '提示',
              content: '您没有访问权限',
              success: function () {
                // 返回上一页
                wx.navigateBack()
                if (res.confirm) {
                  // 点击了确定
                } else if (res.cancel) {
                  // 点击了取消
                }
              }
            })
          } else  {
            // 请求成功
            resolve(res)
          }
        } else if (res.statusCode == 500) {
          wx.showToast({
            title: '后台异常',
            icon: 'none'
          })
        }
      },
      fail: function (res) {
        wx.hideLoading()
        wx.showToast({
          title: res.errMsg,
          image: '/static/icon/error.png'
        })
      }
    })
  })
  return promise
}
module.exports = apiRequest;

4.在api文件中统一处理api请求

import httpRequest from './httpRequest'
export const notaryHistoryPage(params) {
  return httpRequest({ url: '/api/*******', params }).then(res => res)
},

5.页面使用

var api = require('../../api/api.js').default;
Page({
	show:function() {
		let params = {
			id:1
		}
		api.notaryHistoryPage(params).then(res=>{}).catch(res=>{})
	}
})


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解微信小程序网络请求接口封装 的相关文章

  • Linux MISC 驱动实验

    我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动 MISC 驱动其实就是最简单的字符设备驱动 通常嵌套在 platform 总线驱动中 实现复杂的驱动 一 MISC 设备驱动简介 所有的 MISC 设备驱动的主设备号都为 1
  • [数据分析与可视化] Python绘制数据地图4-MovingPandas入门指北

    MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库 用于处理移动物体的轨迹数据 它提供了一组强大的工具 可以轻松地加载 分析和可视化移动物体的轨迹 通过使用MovingPandas 用户可以轻松地处理
  • Window安全策略的制定与实施

    一 安全策略一 给系统打补丁 1 加强windows用户账户认证和访问控制权限控制 通过经常给电脑打补丁来保护电脑数据 这是一个保护电脑 防护很多病毒的有效措施 因为大多数电脑病毒都是通过WINDOWS操作系统的漏洞进行攻击 破坏电脑的正常
  • Django图书商城系统实战开发-实现商品分类管理

    Django图书商城系统实战开发 实现商品分类管理 目前项目已经实现了登录注册 商品详情查看 购物车购买 个人订单管理 评价功能 个人中心管理 管理员登录 会员管理 请设计商品分类管理的相关页面以及视图函数 首先你要知道 商品分类有一级分类
  • (深度学习,机器学习)卷积神经网络

    1 卷积神经网络使深度学习卷土重来是因为卷积神经网络非常适合计算机视觉应用的模型 2 卷积神经网络基本原理包括 卷积算子 卷积的特征 卷积神经网络的典型结构 以及其中的卷积层和池化层 3 卷积提供了能够提升机器学习效果的的三种重要方法 系数

随机推荐

  • 考研机试题 -- DFS、模拟、递推、BFS

    目录 全排列 DFS 八皇后 DFS 反序输出 模拟 特殊乘法 模拟 众数 模拟 吃糖果 模拟 递推数列 递推 玛雅人的密码 BFS 全排列 DFS https www noobdream com DreamJudge Issue page
  • React16新特性

    React的16版本采用了MIT开源许可证 新增了一些特性 Error Boundary render方法新增返回类型 Portals 支持自定义DOM属性 setState传入null时不会再触发更新 更好的服务器端渲染 新的打包策略 1
  • vue 基于el-table实现多页多选、翻页回显过程

    近半年时间在接触vue写pc页面 文中内容即在实际的开发过程中遇到的实际问题 1 问题交代 在pc版的列表页面中 假设当前在列表的第一页 想要在当前页面选择几行数据 跳转到其他页面选择几行数据 选择后的数据页面展示为已勾选状态 经过跳转页面
  • VMware虚拟机安装及如何正确联网

    需要下载 1 VMware 12 第一个图和第二个图是借用其他网友的 本教程使用全部为VMware12 VMware 14同样适用于本文 2 Linux系统 CentOS 6 2 x86 64 bin DVD1 iso 1 安装vmware
  • LIRE代码剖析1——运行第一个图像检索

    lucene是一个开源的强大的索引工具 但是它仅限于文本索引 基于内容的图像检索 CBIR 要求我们利用图像的一些基本特征 如颜色纹理形状以及sift surf等等 搜索相似的图片 LIRE Lucene Image Retrieval 是
  • javascript_JavaScript走向成熟

    javascript 明年JavaScript将有20年的历史 从首次在Netscape浏览器中首次亮相开始算起 这是一门具有悠久历史的语言 并且从其早期开始就带来了很多负担 但是随着它离开少年时代的到来 我认为这是一种最终发展起来的语言
  • Nginx安装Lua

    Nginx安装Lua 1 安装Lua 两个二选一 yum install readline devel CentOS sudo apt get install libreadline dev Ubuntu sudo apt get inst
  • _this2.setState is not a function错误解决办法

    编写RN的小伙伴都知道setState是RN最常见的一个函数 但是这个最简单的函数却是经常报错 这一次我们就来解决 this2 setState is not a function这个错误 首先来看一下我的代码 这段代码就是发送一个请求 然
  • 【SpringBoot学习笔记(四)】之扫描Bean,依赖注入,Bean的生命周期,自定义Bean

    本文章由公号 开发小鸽 发布 欢迎关注 老规矩 妹妹镇楼 一 扫描Bean 1 概述 之前 我们通过构造一个IOC容器来获取Bean 每个Bean对象都要添加 Bean注解 当Bean对象比较多的时候非常麻烦 这里我们使用 Componen
  • 解答:Java是如何实现跨平台运行的?

    Java有一个其他语言都没有特点 那就是跨平台 跨平台是什么意思呢 我们首先来看看平台是指什么 平台就是指我们计算机的操作系统 例如 Windows Linux Mac等操作系统 跨平台的意思就是Java程序 在一次编译后 在这些平台上都可
  • JAVA的内存模型

    Java的内存模型决定了一个线程对共享变量的写入何时对其他线程可见 Java内存模型定义了线程和主内存之间的抽象关系 具体如下 共享变量存储于主内存 计算机的RAM 之中 每个线程都可以访问 每个线程都有私有的工作内存或者称为本地内存 工作
  • ug10万能许可证一键安装_优胜UG4.0-UG12.0-许可证一键自动安装下载

    优胜UG许可证自动安装 NX4 0 NX12 0是优胜模具旗下相应模具软件的证书安装程序 压缩包里有对应的版本号选择 xp系统早年的32位也有对应msi exe验证文件 下方有详细说明 推荐给有需要的用户 ysugxkz nx4 0 nx1
  • Jenkins打包部署gitee项目至阿里云ECS服务器

    原文地址 Jenkins打包部署gitee项目至阿里云ECS服务器 BIGTREE whwtree com 所需插件 Git Parameter Plug In插件 Publish Over SSH插件 Gitee Plugin插件 Nod
  • 7-2 jmu-ds-最长数字序列 (20 分)

    输入一个字符串 求该字符串中最长连续数字序列出现的起始位置及其长度 输入格式 输入一个字符串 可包含空格 输出格式 输出内容 最长数字序列起始位置和长度空格隔开 输出尾部不能有空格 输入空串 输出 NULL 输入样例 123ab12345a
  • 【工具篇】IntelliJ IDEA 设置编码格式UTF-8

    系统 Win11 Idea IDEA 2022 3 2 Ultimate Edition 文件编码 Editor gt File Encodings 编译编码 Build Execution Deployment gt Complier g
  • 从微信授权登录到数据安全性的思考总结

    前置知识 微信授权登录过程和相关名词 access token code openid等 微信授权登录 大都是拉起微信授权页面 用户同意授权后 再跳到自己应用的绑定手机页面进行绑定手机的操作 绑定之后自动登录 会话就像不会过期一样 或者是过
  • 基于live555实现实时视频监控

    目录 1 所需软件 源码及下载地址 1 2安装软件及编译 1 2 1 安装Windows版的VLC
  • JavaScript全解析——循环结构语句

    循环控制 控制程序重复执行若干次相同或似的逻辑 理解并正确使用循环控制 需要搞清楚循环的3个要素 起始值 变化量 终止条件 起始值循环的起点 可以是 任意数据类型值 变化量是指 改变起始值的方式 终止条件 布尔类型值 它是循环停止的边界 w
  • springboot多版本管理

    达到的版本控制效果如下 1 api版本定义在url中 采用 api 项目名 pro v4 接口名 的形式 2 api版本号通过注解进行定义 3 如果请求中不指定api版本号则返回最新版本 4 版本的自动适配 如果请求的api版本不存在 则返
  • 详解微信小程序网络请求接口封装

    为实现定制要求和方便调用 对微信小程序的网络请求接口进行了封装 在根目录新建api文件夹并新建httpRequest js与config js文件 1 设置请求域名 设置请求域名 let ENV wxConfig envVersion le