微信小程序 网络请求封装

简介: 微信小程序 网络请求封装

network.js

post请求和get请求不一样的地方在于header中的content-type参数和method参数


function postRequestLoading(url, params, message, success, fail) {
     if (message != "") {
          wx.showLoading({
               title: message,
          })
     }
     const postRequestTask = wx.request({
          url: url,
          data: params,
          header: {
               'content-type': 'application/x-www-form-urlencoded'
          },
          method: 'POST',
          success: function(res) {
               if (message != "") {
                    wx.hideLoading()
               }
               if (res.statusCode == 200) {
                    success(res.data)
               } else {
                    fail(res)
               }
          },
          fail: function(res) {
               if (message != "") {
                    wx.hideLoading()
               }
               fail(res)
          }
     })
}

这个参数一目了然,当message为空的时候就不显示loading,

然后wx.request返回一个一个task对象,这个对象用来取消请求。

为了更简单的调用,可以再写一个构造


function postRequest(url, params, success, fail) {
     this.postRequestLoading(url, params, "", success, fail)
}

少了message 参数,在调用postRequestLoading方法的时候直接传空即可。


调用

在需要调用的js页面先导入network.js


var network  = require('../../utils/network.js');

使用


//参数
var params = new Object();
params.account = e.detail.value.username,
params.password = e.detail.value.password,
network.postRequestLoading('http:....', params, '登陆中',
      function (res) {
          //res就是返回的数据
           console.log("成功"+res)
     }, function (res) {
           console.log("失败"+res)
     })

完整代码

/**
 * url:请求的url
 * params:请求参数
 * message:loading提示信息
 * success:成功的回调
 * fail:失败的回调
 */
//post请求
function postRequest(url, params, success, fail) {
     this.postRequestLoading(url, params, "", success, fail)
}
//根据判断message 是否显示loading
function postRequestLoading(url, params, message, success, fail) {
     if (message != "") {
          wx.showLoading({
               title: message,
          })
     }
     const postRequestTask = wx.request({
          url: url,
          data: params,
          header: {
               'content-type': 'application/x-www-form-urlencoded'
          },
          method: 'POST',
          success: function(res) {
               if (message != "") {
                    wx.hideLoading()
               }
               if (res.statusCode == 200) {
                    success(res.data)
               } else {
                    fail(res)
               }
          },
          fail: function(res) {
               if (message != "") {
                    wx.hideLoading()
               }
               fail(res)
          }
     })
}
//get请求
function getRequest(url, params, success, fail) {
     this.getRequestLoading(url, params, "", success, fail)
}
function getRequestLoading(url, params, message, success, fail) {
     if (message != "") {
          wx.showLoading({
               title: message,
          })
     }
     const getRequestTask = wx.request({
          url: url,
          data: params,
          header: {
               'Content-Type': 'application/json'
          },
          method: 'GET',
          success: function(res) {
               if (message != "") {
                    wx.hideLoading()
               }
               if (res.statusCode == 200) {
                    success(res.data)
               } else {
                    fail(res)
               }
          },
          fail: function(res) {
               if (message != "") {
                    wx.hideLoading()
               }
               fail(res)
          }
     })
}
//取消post请求
function abortPostRequest(url, params, success, fail) {
     postRequestTask.abort()
}
//取消get请求
function abortGetRequest(url, params, success, fail) {
     getRequestTask.abort()
}
module.exports = {
     postRequest: postRequest,
     postRequestLoading: postRequestLoading,
     getRequest: getRequest,
     getRequestLoading: getRequestLoading,
     abortPostRequest: abortPostRequest,
     abortGetRequest: abortGetRequest
}

目录
相关文章
|
1月前
|
安全 网络协议 Java
Java网络编程封装
Java网络编程封装原理旨在隐藏底层通信细节,提供简洁、安全的高层接口。通过简化开发、提高安全性和增强可维护性,封装使开发者能更高效地进行网络应用开发。常见的封装层次包括套接字层(如Socket和ServerSocket类),以及更高层次的HTTP请求封装(如RestTemplate)。示例代码展示了如何使用RestTemplate简化HTTP请求的发送与处理,确保代码清晰易维护。
|
12天前
|
缓存 小程序 API
微信小程序网络请求与API调用:实现数据交互
本文深入探讨了微信小程序的网络请求与API调用,涵盖`wx.request`的基本用法、常见场景(如获取数据、提交表单、上传和下载文件)及注意事项(如域名配置、HTTPS协议、超时设置和并发限制)。通过一个简单案例,演示了如何实现小程序与服务器的数据交互。掌握这些技能将帮助你构建功能更丰富的应用。
|
4月前
|
存储 缓存 Dart
Flutter&鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
本文详细介绍了如何在 Flutter 中使用 Dio 封装网络请求,实现用户登录身份验证及免登录缓存功能。首先在 `pubspec.yaml` 中添加 Dio 和 `shared_preferences` 依赖,然后创建 `NetworkService` 类封装 Dio 的功能,包括请求拦截、响应拦截、Token 存储和登录请求。最后,通过一个登录界面示例展示了如何在实际应用中使用 `NetworkService` 进行身份验证。希望本文能帮助你在 Flutter 中更好地处理网络请求和用户认证。
242 1
|
5月前
|
网络协议 Java 程序员
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
77 2
|
6月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
5月前
|
网络协议 网络架构
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
115 0
|
7月前
|
小程序 数据安全/隐私保护
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
在 `src/http` 目录下创建 `request.ts` 文件,并配置 Taro 的网络请求方法 `Taro.request`,支持多种 HTTP 方法并处理数据加密。
247 0
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
|
8月前
|
小程序 C++
【微信小程序-原生开发】实用教程19 - 表单范例 VS 表单校验(含必填校验函数封装,实时数字校验)
【微信小程序-原生开发】实用教程19 - 表单范例 VS 表单校验(含必填校验函数封装,实时数字校验)
144 0
|
2月前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
49 0
|
4月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
94 0
在线课堂+工具组件小程序uniapp移动端源码

热门文章

最新文章