【愚公系列】2022年02月 微信小程序-Request网络请求的封装

简介: 【愚公系列】2022年02月 微信小程序-Request网络请求的封装

前言

Request网络请求在任何应用中都是必不可少的,但微信小程序的wx.request()太过单一没法满足复杂的请求,所以就有本片文章讲解如何封装小程序的请求


一、微信小程序

首先我们来看一下官方文档中介绍的wx.request()

image.png

默认使用方式


wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {},
  header: {
      'content-type': 'application/json' // 默认值
  },
  success: function(res) {
    console.log(res.data)
  }
})

二、Request.js封装

Request.js是基于WX API的封装只有一个文件


const URL = 'http://love520.com'
module.exports = {
   //封装request方法,第一个参数请求地址,第二个参数传递参数,第三个参数请求方式
    request:function(url,data={},method){
       //返回promise对象  resolve 成功的回调方法 reject失败的回调方法 一旦发生就不会改变
        return new Promise((resolve, reject)=>{
            wx.request({
                url: URL + url,
                data,
                method,
                header:{
                    'token':wx.getStorageSync('token')
                },
                success:(res)=>{
                    if(res.statusCode === 200 && res.data.code === 200){
                        resolve(res.data)
                        wx.hideLoading()
                    } else {
                        wx.showToast({
                            icon:'error',
                            title: res.Msg,
                        })
                        reject(res.Msg)
                    }
                },
                fail:(err)=>{
                    wx.showToast({
                        icon:'error',
                        title: '接口无响应',
                    })
                    reject('接口无响应')
                }
            })
        })
    }
}

三、Route.js封装

Route.js主要是区分业务的怎删改查根据领域模型划分多个业务体系


const { request } = require('./request.js')
//restful类型接口
module.exports = {
  GetUsers:(data) => request('/api/identity/users/{id}',{},'GET'),
  PostUsers:(data) => request('/api/identity/users/{id}',data,'POST'),
  PutUsers:(data) => request('/api/identity/users/{id}',data,'PUT'),
  DeleteUsers:(data) => request('/api/identity/users/{id}',{},'DELETE'),
}

image.png


四、使用

import { GetUsers,PostUsers,PutUsers,DeleteUsers} from "../../utils/route"
GetUsers(id,{}).then((res)=>{
    this.setData({
        list: res.data
    })
})
PostUsers(id,data).then((res)=>{
    wx.showToast({
        icon:'none',
        title: res.Msg,
    })
})
PutUsers(id,data).then((res)=>{
    wx.showToast({
        icon:'none',
        title: res.Msg,
    })
})
DeleteUsers(id,{}).then((res)=>{
    wx.showToast({
        icon:'none',
        title: res.Msg,
    })
})
相关文章
|
8天前
|
安全 网络协议 Java
Java网络编程封装
Java网络编程封装原理旨在隐藏底层通信细节,提供简洁、安全的高层接口。通过简化开发、提高安全性和增强可维护性,封装使开发者能更高效地进行网络应用开发。常见的封装层次包括套接字层(如Socket和ServerSocket类),以及更高层次的HTTP请求封装(如RestTemplate)。示例代码展示了如何使用RestTemplate简化HTTP请求的发送与处理,确保代码清晰易维护。
|
3月前
|
存储 缓存 Dart
Flutter&鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
本文详细介绍了如何在 Flutter 中使用 Dio 封装网络请求,实现用户登录身份验证及免登录缓存功能。首先在 `pubspec.yaml` 中添加 Dio 和 `shared_preferences` 依赖,然后创建 `NetworkService` 类封装 Dio 的功能,包括请求拦截、响应拦截、Token 存储和登录请求。最后,通过一个登录界面示例展示了如何在实际应用中使用 `NetworkService` 进行身份验证。希望本文能帮助你在 Flutter 中更好地处理网络请求和用户认证。
224 1
|
4月前
|
网络协议 网络架构
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
99 0
|
4月前
|
网络协议 Java 程序员
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
66 2
|
5月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
6月前
|
小程序 数据安全/隐私保护
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
在 `src/http` 目录下创建 `request.ts` 文件,并配置 Taro 的网络请求方法 `Taro.request`,支持多种 HTTP 方法并处理数据加密。
226 0
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
|
7月前
|
小程序 开发者
【微信小程序】 微信小程序报错不在以下request合法域名列表中
【微信小程序】 微信小程序报错不在以下request合法域名列表中
1196 0
|
7月前
|
小程序 C++
【微信小程序-原生开发】实用教程19 - 表单范例 VS 表单校验(含必填校验函数封装,实时数字校验)
【微信小程序-原生开发】实用教程19 - 表单范例 VS 表单校验(含必填校验函数封装,实时数字校验)
131 0
|
27天前
|
小程序 前端开发 关系型数据库
基于Uniapp+php校园小程序,校园圈子论坛系统功能,校园跑腿二手交流功能设计
校园圈子论坛及综合服务平台集成了校园跑腿、兼职信息、外卖团购、闲置交换、租赁服务、表白墙等多功能模块,提供一站式校园生活解决方案。系统采用uniapp前端和PHP后端开发,支持多城市、多学校切换,配备分站式后台管理,确保稳定性和安全性。通过融云IM SDK实现即时通讯功能,增强用户互动与粘性。适用于大学校园、城市及社区圈子,满足多样化需求,提升便捷体验。
|
30天前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
27 0

热门文章

最新文章