微信小程序之网络请求简单封装实例详解

在微信小程序中实现网络请求相对于Android来说感觉简单很多,我们只需要使用其提供的API就可以解决网络请求问题。
为了数据安全,微信小程序网络请求只支持https,当然各个参数的含义就不在细说,不熟悉的话可以;可以去阅读官方文档的网络请求api,当我们使用request时header的content-typ默认是application/json,在文档中指出method 的value必须是大写,不过经过测试,小写也能请求成功。request默认的超时时间是60s,如果我们想自定义超时时间,我们可以在app.json中加入下面代码片段,分别设置request,socket,和上传文件及下载文件的超时时间。
"networkTimeout": {
"request": 5000,
"connectSocket": 5000,
"uploadFile": 5000,
"downloadFile": 5000
}
设置过超时时间,我们就开始封装网络请求,平时我们所接触的网络请求,一般会分为两类,一类是在后台运行的,没有加载对话框提示,另一种就是有提示,如提示正在加载数据,,那么我们就以此为线索来进行封装。先创建一个network的网络请求工具类,然后
// 展示进度条的网络请求
// url:网络请求的url
// params:请求参数
// message:进度条的提示信息
// success:成功的回调函数
// fail:失败的回调
function requestLoading(url, params, message, success, fail) {
console.log(params)
wx.showLoading({
title: message,
})
wx.request({
url: url,
data: params,
header: {
'content-type': 'application/x-www-form-urlencoded'
},
method: 'post',
success: function (res) {
//console.log(res.data)
wx.hideLoading()
if (res.statusCode == 200) {
success(res.data)
} else {
fail()
}
},
fail: function (res) {
wx.hideLoading()
fail()
},
complete: function (res) {
},
})
}
上面函数很好理解,参数的含义已在代码中解释,在网络请求开始前,先展示Loading对话框,提示用户当前网络正在请求数据,当网络请求成功或者失败后调用wx.hideLoading()取消提示框的展示。在api中还提供了wx.showNavigationBarLoading()用于显示当前页面的导航条加载动画,那么如果我们想展示这个动画可以在requestLoading执行开始调用wx.showNavigationBarLoading(),然后在网络请求成功或者失败后调用wx.hideNavigationBarLoading()隐藏导航栏加载动画。
当网络请求成功并且状态码为200时,将请求到的数据回调通过success(res.data)回调给我们的方法,在上面我们没有对失败原因进行细分,当然你也可以给失败回调加个参数,用于提示用户失败的原因,如res.statusCode ==500时提示服务器内部错误,res.statusCode ==-1时提示请检查网络,res.statusCode ==404,找不到地址等等。
然后我们在创建一个不显示对话框,用户后台请求数据的请求函数,为了少写代码,我们共用上面的函数,如下
//不显示对话框的请求
function request(url, params, success, fail) {
this.requestLoading(url, params, "", success, fail)
}
我们看到我们最终还是调用的requestLoading,那么我们可以在该函数作下判断,如果提示信息message==''就不显示对话框。
最终的代码
function request(url, params, success, fail) {
this.requestLoading(url, params, "", success, fail)
}
// 展示进度条的网络请求
// url:网络请求的url
// params:请求参数
// message:进度条的提示信息
// success:成功的回调函数
// fail:失败的回调
function requestLoading(url, params, message, success, fail) {
console.log(params)
wx.showNavigationBarLoading()
if (message != "") {
wx.showLoading({
title: message,
})
}
wx.request({
url: url,
data: params,
header: {
//'Content-Type': 'application/json'
'content-type': 'application/x-www-form-urlencoded'
},
method: 'post',
success: function (res) {
//console.log(res.data)
wx.hideNavigationBarLoading()
if (message != "") {
wx.hideLoading()
}
if (res.statusCode == 200) {
success(res.data)
} else {
fail()
}
},
fail: function (res) {
wx.hideNavigationBarLoading()
if (message != "") {
wx.hideLoading()
}
fail()
},
complete: function (res) {
},
})
}
module.exports = {
request: request,
requestLoading: requestLoading
}
使用就很简单了,如下
//路径根据自己项目路径修改
var network = require("/utils/network.js")
getData:function(){
network.requestLoading(URL.MY_SCORE, that.data.params, '正在加载数据', function (res) {
//res就是我们请求接口返回的数据
console.log(res)
}, function () {
wx.showToast({
title: '加载数据失败',
})
})
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 微信小程序之网络请求简单封装
# 小程序
# 网络请求封装
# 微信小程序网络请求封装示例
# 微信小程序网络请求的封装与填坑之路
# 详解微信小程序网络请求接口封装实例
# 微信小程序中如何使用flyio封装网络请求
# 微信小程序网络请求模块封装的具体实现
# 回调
# 对话框
# 提示信息
# 进度条
# 加载
# 我们可以
# 创建一个
# 正在加载
# 上传文件
# 文档
# 是在
# 很好
# 是有
# 就不
# 找不到
# 也能
# 给我们
# 希望能
# 很简单
# 自定义
相关文章:
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
婚礼视频制作网站,学习*后期制作的网站有哪些?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
,如何利用word制作宣传手册?
python的本地网站制作,如何创建本地站点?
想学网站制作怎么学,建立一个网站要花费多少?
如何选择靠谱的建站公司加盟品牌?
如何通过西部建站助手安装IIS服务器?
济南网站制作的价格,历城一职专官方网站?
,南京靠谱的征婚网站?
如何构建满足综合性能需求的优质建站方案?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在腾讯云服务器快速搭建个人网站?
如何高效配置IIS服务器搭建网站?
香港服务器租用费用高吗?如何避免常见误区?
如何在服务器上三步完成建站并提升流量?
黑客如何利用漏洞与弱口令入侵网站服务器?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
学校为何禁止电信移动建设网站?
如何在VPS电脑上快速搭建网站?
Python文件管理规范_工程实践说明【指导】
如何通过IIS搭建网站并配置访问权限?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
淘宝制作网站有哪些,淘宝网官网主页?
ppt制作免费网站有哪些,ppt模板免费下载网站?
如何在IIS中配置站点IP、端口及主机头?
制作网页的网站有哪些,电脑上怎么做网页?
Android自定义控件实现温度旋转按钮效果
学校建站服务器如何选型才能满足性能需求?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星展会模板:智能建站与自助搭建高效解决方案
,想在网上投简历,哪几个网站比较好?
网站设计制作企业有哪些,抖音官网主页怎么设置?
完全自定义免费建站平台:主题模板在线生成一站式服务
网站制作公司排行榜,抖音怎样做个人官方网站
IOS倒计时设置UIButton标题title的抖动问题
制作农业网站的软件,比较好的农业网站推荐一下?
如何在服务器上配置二级域名建站?
建站之星后台密码遗忘或太弱?如何重置与强化?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何在Golang中指定模块版本_使用go.mod控制版本号
如何选择域名并搭建高效网站?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
如何快速生成ASP一键建站模板并优化安全性?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
*请认真填写需求信息,我们会在24小时内与您取得联系。