微信小程序网络封装(简单高效)

废话引言

小程序虽然出世很久了,但一直没怎么接触到小程序开发。吉他兴趣班老师想弄一个小程序发布课程信息和打卡功能,作为IT一员就自愿加入了这个小程序开发小组中。虽然小程序面向的是前端工程师,但作为移动端程序猿感觉甚是友好,加上有点前端基础就更是觉得入手很easy啦。

微信小程序的网络请求很便捷,直接调用就可以了。但最好还是根据需求,处理一些参数回调信息,进行二次封装,为整个小程序应用直接提供调方法接口岂不是更好?

利用网络请求的一贯思维,分三个回调:onStart:开始请求, onSuccess:请求成功回调, onFailed:请求失败回调, 意思就是字面意思~

netUtil.js 网络请求工具封装

在utils目录下创建一个netUtil.js文件

/**

* 供外部post请求调用

*/

function post(url, params, onStart, onSuccess, onFailed) {

request(url, params, "POST", onStart, onSuccess, onFailed);

}

/**

* 供外部get请求调用

*/

function get(url, params, onStart, onSuccess, onFailed) {

request(url, params, "GET", onStart, onSuccess, onFailed);

}

/**

* function: 封装网络请求

* @url URL地址

* @params 请求参数

* @method 请求方式:GET/POST

* @onStart 开始请求,初始加载loading等处理

* @onSuccess 成功回调

* @onFailed 失败回调

*/

function request(url, params, method, onStart, onSuccess, onFailed) {

onStart(); //request start

wx.request({

url: url,

data: dealParams(params),

method: method,

header: { 'content-type': 'application/json' },

success: function (res) {

if (res.data) {

/** start 根据需求 接口的返回状态码进行处理 */

if (res.data.error_code == 0) {

onSuccess(res.data); //request success

} else {

onFailed(res.data.msg); //request failed

}

/** end 处理结束*/

}

},

fail: function (error) {

onFailed(""); //failure for other reasons

}

})

}

/**

* function: 根据需求处理请求参数:添加固定参数配置等

* @params 请求参数

*/

function dealParams(params) {

return params;

}

module.exports = {

postRequest: post,

getRequest: get,

}

小案例使用说明:笑话大全接口

简要描述:用户注册接口

请求URL:http://v.juhe.cn/joke/content/list.php

请求方式:GET

参数:

参数名必选类型说明
sortstring降序“des”,升序“asc”
pageint页数,默认1
pageSizestring默认每页加载20条数据
timestring时间戳10位
keystringappkey

返回示例

{

"error_code": 0,

"reason": "Success",

"result": {

"data": [

{

"content": "某先生是地方上的要人。一天,他像往常一样在书房里例览当日报纸,突然对妻子大声喊道:喂,安娜,你看到今天早报上的流言蜚语了吗?真可笑!他们说,你收拾行装出走了。你听见了吗?安娜、你在哪儿?安娜?啊!",

"hashId": "90B182FC7F74865B40B1E5807CFEBF41",

"unixtime": 1418745227,

"updatetime": "2014-12-16 23:53:47"

},

{

"content": "有一天我看着报纸,小声嘟囔着一篇文章的题目鸟儿也有外语,丈夫听了对了一句:鸟儿当然也有‘外遇'。原来丈夫听错了,我笑得前仰后合。",

"hashId": "206F5C52FD2ED94772CBC66C8AC61F2A",

"unixtime": 1418745227,

"updatetime": "2014-12-16 23:53:47"

}

]

}

}

小程序页面js文件中引入netUtil

var netUtil = require("../../utils/network.js"); //require引入

Page({

data: {

jokeList: {}

},

onLoad: function (options) {

var url = "http://v.juhe.cn/joke/content/list.php";

var params = {

sort: "",

page: 1,

pagesize: 5,

time: "1418816972",

key: "746dfdb4cd8445d30a8f915fd2b5f76b",

}

netUtil.getRequest(url, params, this.onStart, this.onSuccess, this.onFailed); //调用get方法情就是户数

},

onStart: function () { //onStart回调

wx.showLoading({

title: '正在加载',

})

},

onSuccess: function (res) { //onSuccess回调

wx.hideLoading();

this.setData({

jokeList: res.result.data //请求结果数据

})

},

onFailed: function (msg) { //onFailed回调

wx.hideLoading();

if (msg) {

wx.showToast({

title: msg,

})

}

},

})

在wxml文件中绑定请求的笑话大全列表:jokeList

<view>

<block wx:for="{{jokeList}}" wx:for-item="item" wx:key="idx">

<view class='joke_container'>

<text>{{item.content}}</text>

</view>

</block>

</view>

以上是 微信小程序网络封装(简单高效) 的全部内容, 来源链接: utcz.com/z/356321.html

回到顶部