微信小程序实现网络请求简单封装的示例

  介绍

小编给大家分享一下微信小程序实现网络请求简单封装的示例,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!


<强>微信小程序之网络请求简单封装的示例

在微信小程序中实现网络请求相对于Android来说感觉简单很多,我们只需要使用其提供的API就可以解决网络请求问题。

<李>

普通HTTPS请求(wx.request)

<李>

上传文件(wx.uploadFile)

<李>

下载文件(wx.downloadFile)

<李>

WebSocket通信(wx.connectSocket)

为了数据安全,微信小程序网络请求只支持HTTPS,当然各个参数的含义就不在细说,不熟悉的话可以,可以去阅读官方文档的网络请求API,当我们使用请求时头的content-typ默认是application/json,在文档中指出方法的值必须是大写,不过经过测试,小写也能请求成功.request默认的超时时间是60年代,如果我们想自定义超时时间,我们可以在应用程序。json中加入下面代码片段,分别设置要求,插座,和上传文件及下载文件的超时时间。

“networkTimeout":, {   “request"才能:,5000年,   “connectSocket"才能:,5000年,   “uploadFile"才能:,5000年,   “downloadFile"才能:5000   以前,}

设置过超时时间,我们就开始封装网络请求,平时我们所接触的网络请求,一般会分为两类,一类是在后台运行的,没有加载对话框提示,另一种就是有提示,如提示正在加载数据,,那么我们就以此为线索来进行封装。先创建一个网络的网络请求工具类,然后

//,展示进度条的网络请求//,url:网络请求的url//,参数:请求参数//,信息:进度条的提示信息//,成功:成功的回调函数//,失败:失败的回调   function  requestLoading (url,参数,,,,成功,失败),{   ,console.log (params)   wx.showLoading({才能   ,,,标题:信息,   })才能   ,wx.request ({   ,,url: url,   数据:才能,参数,   头才能:{   ,,& # 39;内容类型# 39;:,& # 39;应用程序/x-www-form-urlencoded& # 39;   ,,},   方法:才能,& # 39;文章# 39;   ,,成功:function  (res), {   ,,//console.log (res.data)   ,,,wx.hideLoading ()   ,,if  (res.statusCode ==, 200), {   ,,,成功(res.data)   ,,},{else    ,,,()失败   ,,}      ,,},   ,,失败:function  (res), {   ,,,wx.hideLoading ()   ,,,()失败   ,,},   ,,完成:function  (res), {      ,,},   ,})   }

上面函数很好理解,参数的含义已在代码中解释,在网络请求开始前,先展示加载对话框,提示用户当前网络正在请求数据,当网络请求成功或者失败后调用wx.hideLoading()取消提示框的展示。在api中还提供了wx.showNavigationBarLoading()用于显示当前页面的导航条加载动画,那么如果我们想展示这个动画可以在requestLoading执行开始调用wx.showNavigationBarLoading(),然后在网络请求成功或者失败后调用wx.hideNavigationBarLoading()隐藏导航栏加载动画。

当网络请求成功并且状态码为200时,将请求到的数据回调通过成功(res.data)回调给我们的方法,在上面我们没有对失败原因进行细分,当然你也可以给失败回调加个参数,用于提示用户失败的原因,如res。statusCode==500时提示服务器内部错误,res。statusCode==1时提示请检查网络,res。statusCode==404,找不到地址等等。

然后我们在创建一个不显示对话框,用户后台请求数据的请求函数,为了少写代码,我们共用上面的函数,如下

//不显示对话框的请求   function 请求(url,参数,,成功,失败),{   ,this.requestLoading (url,参数,,,,,,成功,失败)   }

我们看到我们最终还是调用的requestLoading,那么我们可以在该函数作下判断,如果提示信息消息==& # 39;& # 39;就不显示对话框。

最终的代码

function 请求(url,参数,,成功,失败),{   ,this.requestLoading (url,参数,,,,,,成功,失败)   }//,展示进度条的网络请求//,url:网络请求的url//,参数:请求参数//,信息:进度条的提示信息//,成功:成功的回调函数//,失败:失败的回调   function  requestLoading (url,参数,,,,成功,失败),{   ,console.log (params)   ,wx.showNavigationBarLoading ()   ,if  (message  !=,““), {   wx.showLoading({才能   ,,,标题:信息,   })才能   ,}   ,wx.request ({   ,,url: url,   数据:才能,参数,   头才能:{   ,,//& # 39;内容类型# 39;:,& # 39;application/json # 39;   ,,& # 39;内容类型# 39;:,& # 39;应用程序/x-www-form-urlencoded& # 39;   ,,},   方法:才能,& # 39;文章# 39;   ,,成功:function  (res), {   ,,//console.log (res.data)   ,,wx.hideNavigationBarLoading ()   ,,if  (message  !=,““), {   ,,,wx.hideLoading ()   ,,}   ,,if  (res.statusCode ==, 200), {   ,,,成功(res.data)   ,,},{else    ,,,()失败   ,,}      ,,},   ,,失败:function  (res), {   ,,wx.hideNavigationBarLoading ()   ,,if  (message  !=,““), {   ,,,wx.hideLoading ()   ,,}   ,,失败()   ,,},   ,,完成:function  (res), {      ,,},   ,})   }   module.exports =, {   ,要求:要求,   ,requestLoading: requestLoading   }

微信小程序实现网络请求简单封装的示例