真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

微信小程序封裝的HTTP請(qǐng)求示例【附升級(jí)版】

本文實(shí)例講述了微信小程序封裝的HTTP請(qǐng)求。分享給大家供大家參考,具體如下:

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)泌陽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

微信小程序里自己封裝了請(qǐng)求的函數(shù),但幾乎每個(gè)頁面都要用到,所以為什么更方便的調(diào)用,再一次進(jìn)行封裝。

在app.js里面定義個(gè)全局對(duì)象,這樣想要用到該函數(shù),只需要在該頁面的js文件里面,請(qǐng)求一個(gè)app實(shí)例。

廢話不多說,先上代碼:

//全局對(duì)象httpClient
httpClient:{
  request:function(method,url,data){
    //返回一個(gè)promise實(shí)例
    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);
  }

在需要請(qǐng)求的頁面調(diào)用:

例如:登錄頁面login.js

//獲取app實(shí)例,從而調(diào)用全局對(duì)象的函數(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("請(qǐng)求成功時(shí)調(diào)用該函數(shù)")})
    .catch(res=>{console.log("請(qǐng)求失敗時(shí)調(diào)用該函數(shù)")})
}
//為了更好的閱讀,也可以將回調(diào)函數(shù),定義在外面
//這樣
loginSuccess:function(){
  console.log("請(qǐng)求成功時(shí)調(diào)用該函數(shù)")
},
loginFail:function(){
  console.log("請(qǐng)求失敗時(shí)調(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())
}

是不是簡(jiǎn)潔多了。。。。

附:升級(jí)版

上代碼

// 該函數(shù)怎么寫,需要跟后端人員協(xié)商返回的格式
function getErrorMsgByErrorNo(error_no) {
 let error_msg;
 switch (error_no) {
  case 100: error_msg = '操作失敗,請(qǐng)稍后再試!'; break;
  default: error_msg = '網(wǎng)絡(luò)錯(cuò)誤,請(qǐng)稍后再試!'; 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: ' {
   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就說明請(qǐng)求出現(xiàn)了錯(cuò)誤
    this.toast.showToast({
     type: 'fail',
     title: res.error_msg,
    })
   } else {
    this.setData({
     journeyList: res.data
    })
   }
  });
 },

希望本文所述對(duì)大家微信小程序開發(fā)有所幫助。


分享名稱:微信小程序封裝的HTTP請(qǐng)求示例【附升級(jí)版】
分享地址:
http://weahome.cn/article/iiiocg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部