微信小程序封裝的HTTP請求示例【附升級版】
本文實例講述了微信小程序封裝的HTTP請求。分享給大家供大家參考,具體如下:
微信小程序里自己封裝了請求的函數(shù),但幾乎每個頁面都要用到,所以為什么更方便的調(diào)用,再一次進(jìn)行封裝。
在app.js里面定義個全局對象,這樣想要用到該函數(shù),只需要在該頁面的js文件里面,請求一個app實例。
廢話不多說,先上代碼:
//全局對象httpClient httpClient:{ request:function(method,url,data){ //返回一個promise實例 return new Promise( (resolve,reject)=>{ wx.request({ url:url, data:data, mehtod:method, success:function(res){ resolve(res) }, fail:function(res){ reject(res); }, complete:function(){ console.log('complete'); } }) }) } //get方法:用來獲取數(shù)據(jù) get:function( url ) { return this.request('GET',url); }, //post方法:用來更新數(shù)據(jù) post:function( url,data) { resturn this.request('POST',url,data); }, //put方法 put:function(url,data){ return this.request('PUT', url, data); }, //delete方法 delete:function(url,data){ return this.request('DELETE', url, data); }
在需要請求的頁面調(diào)用:
例如:登錄頁面login.js
//獲取app實例,從而調(diào)用全局對象的函數(shù) var app=getApp(); login:function(){ var url='http:xxxxx/login'; var data={ userName:'xxxxx', passwd:'xxxxxx' } app.httpClient.post( url,data ) .then( res=>{console.log("請求成功時調(diào)用該函數(shù)")}) .catch(res=>{console.log("請求失敗時調(diào)用該函數(shù)")}) } //為了更好的閱讀,也可以將回調(diào)函數(shù),定義在外面 //這樣 loginSuccess:function(){ console.log("請求成功時調(diào)用該函數(shù)") }, loginFail:function(){ console.log("請求失敗時調(diào)用該函數(shù)") }, login:function(){ var self=this; var url='http:xxxxx/login'; var data={ userName:'xxxxx', passwd:'xxxxxx' } app.httpClient.post( url,data ) .then( res=>self.loginSuccess()) .catch(res=>self.loginFail()) }
是不是簡潔多了。。。。
附:升級版
上代碼
// 該函數(shù)怎么寫,需要跟后端人員協(xié)商返回的格式 function getErrorMsgByErrorNo(error_no) { let error_msg; switch (error_no) { case 100: error_msg = '操作失敗,請稍后再試!'; break; default: error_msg = '網(wǎng)絡(luò)錯誤,請稍后再試!'; break; } return error_msg; } function handleData(res) { if (res.data.success) { if (typeof (res.data.body) === 'string') { return []; } else if (Array.isArray(res.data.body) === false) { const _arr = []; _arr.push(res.data.body); return _arr; } else { return res.data.body; } } else { if (res.data.error_no) { return { error_no: res.data.error_no, error_msg: getErrorMsgByErrorNo(res.data.error_no) }; } else { return { error_no: 123456, error_msg: '服務(wù)器維護(hù)中,請稍后!' }; } } } const httpClient = { request: function (method, url, data) { return new Promise((resolve, reject) => { wx.request({ url: url, data: data, method: method, success: function (res) { resolve(handleData(res)) }, fail: function (err) { console.log('request fail ', err); resolve({ error_no: 100, error_msg: getErrorMsgByErrorNo(100) }) }, complete: function (res) { console.log("request completed!"); } }) }); }, get: function (url) { return this.request('GET', url); }, post: function (url, data) { return this.request('POST', url, data); }, put: function (url, data) { return this.request('PUT', url, data); }, delete: function (url, data) { return this.request('DELETE', url, data); }, }; module.exports = httpClient;
使用
function getMyselfData() { const _Url= urls.url; return httpClient.get(_Url); } getData() { let resultsData = this.getMyselfData(); resultsData.then((res) => { if (res.error_no) { // 只要有error_no就說明請求出現(xiàn)了錯誤 this.toast.showToast({ type: 'fail', title: res.error_msg, }) } else { this.setData({ journeyList: res.data }) } }); },
希望本文所述對大家微信小程序開發(fā)有所幫助。
相關(guān)文章
div+css+js模擬tab切換效果 事件綁定 IE,firefox兼容
div+css+js模擬tab,這個版本,理論上可以添加無限個tab,而且,你只要管內(nèi)容的添加行了,不需要改JS2009-12-12JS數(shù)組操作(數(shù)組增加、刪除、翻轉(zhuǎn)、轉(zhuǎn)字符串、取索引、截取(切片)slice、剪接splice、數(shù)組合并)
這篇文章主要介紹了JS數(shù)組操作(數(shù)組增加、刪除、翻轉(zhuǎn)、轉(zhuǎn)字符串、取索引、截取(切片)slice、剪接splice、數(shù)組合并)的相關(guān)資料,需要的朋友可以參考下2016-05-05Javascript客戶端將指定區(qū)域?qū)С龅絎ord、Excel的代碼
Javascript 瀏覽器客戶端導(dǎo)出指定區(qū)域到Word、Excel,非常不錯的應(yīng)用實例2008-10-10JavaScript中的this例題實戰(zhàn)總結(jié)詳析
使用JavaScript開發(fā)的時候,很多人多多少少都會被this的指向問題搞蒙圈,下面這篇文章主要給大家介紹了關(guān)于JavaScript中this例題實戰(zhàn)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06D3.js實現(xiàn)餅圖,環(huán)圖,玫瑰圖的繪制
這篇文章主要為大家介紹了如何利用D3.js中的d3.pie和d3.arc實現(xiàn)餅圖、環(huán)圖和玫瑰圖的繪制,文中的實現(xiàn)方法講解詳細(xì),感興趣的可以嘗試一下2022-11-11unapp微信小程序轉(zhuǎn)發(fā)分享及攜帶參數(shù)的2種方式
這篇文章主要給大家介紹了關(guān)于unapp微信小程序轉(zhuǎn)發(fā)分享及攜帶參數(shù)的2種方式,我們在微信小程序中經(jīng)常會使用到分享商品海報,或者是重繪微信小程序分享鏈的圖片功能,需要的朋友可以參考下2023-11-11