您好,登錄后才能下訂單哦!
廢話引言
小程序雖然出世很久了,但一直沒怎么接觸到小程序開發。吉他興趣班老師想弄一個小程序發布課程信息和打卡功能,作為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
參數:
參數名 | 必選 | 類型 | 說明 |
---|---|---|---|
sort | 否 | string | 降序“des”,升序“asc” |
page | 否 | int | 頁數,默認1 |
pageSize | 否 | string | 默認每頁加載20條數據 |
time | 是 | string | 時間戳10位 |
key | 是 | string | appkey |
返回示例
{ "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>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。