request請(qǐng)求封裝

不管是在小程序還是咋們的java編程中电谣,往往為了提高代碼的高復(fù)用性贷揽,我們都會(huì)對(duì)經(jīng)常重復(fù)使用到的代碼塊進(jìn)行一定的封裝美澳,進(jìn)而加快開發(fā)竞阐,當(dāng)然有時(shí)候還可以降低對(duì)內(nèi)存的使用(抑或者說降低對(duì)服務(wù)器的負(fù)載)。今天我將之前在小程序用到的request封裝的代碼留給各位老鐵參考使用哈硫椰,喜歡可以關(guān)注我哈繁调,沒錯(cuò)我就是會(huì)一些前端的后端程序員,Kacen靶草!

廢話不多說蹄胰,直接干起兒!
1.首先我們?cè)诟夸浵罗认瑁陆ㄒ粋€(gè)request文件夾裕寨,專門放一些用來做請(qǐng)求使用的js,圖片是事例:
meishenme.png
2.我們新建一個(gè)allrequest.js文件來把你想封裝的代碼放進(jìn)去(這里我寫的是get,post,put,delete)
class request{
  constructor(){
    this._header = {}
  }
  
  // 統(tǒng)一異常處理
  setErrorHandler(handler){
    this._errorHandler = handler;
  }

  // GET請(qǐng)求處理
  getRequest(url, data, header = this._header){
    return this.requestAll(url, data, header, 'GET')
  }

  // POST請(qǐng)求處理
  postRequest(url, data, header = this._header){
    return this.requestAll(url, data, header, 'POST')
  }

  // PUT請(qǐng)求處理
  putRequest(url, data, header = this._header){
    return this.requestAll(url, data, header, 'PUT')
  }

  // DELETE請(qǐng)求處理
  deleteRequest(url, data, header = this._header){
    return this.requestAll(url, data, header, 'DELETE')
  }

  requestAll(url, data, header, requestMethod){
    return new Promise((resolve, reject) => {
      wx.request({
        url: url,
        data: data,
        header: header,
        method: requestMethod,
        fail: (res) => {
          //這里是將錯(cuò)誤的信息統(tǒng)一處理,因?yàn)槲覀儠?huì)寫一個(gè)統(tǒng)一處理錯(cuò)誤的代碼派继,我們可以在每個(gè)不同的js下定義不同的錯(cuò)誤信息宾袜。
          if(this._errorHandler != null){
            this._errorHandler(res)
          }
          reject(res)
        },
        success: (result) => {          
          if (result.statusCode === 200)
          resolve(result)
          else{
            if(this._errorHandler != null){
              this._errorHandler(result)
            }
          }
          reject(result)
        },
      })
    })
  }
}
export default request
3.每個(gè)頁(yè)面不同會(huì)有不同的需求,所以我們可以新建一個(gè)專門的js來針對(duì)你想請(qǐng)求的頁(yè)面(這里以indexTest為例子)
import request from "./allrequest.js"
import config from "../config.js"

class indexTest{
  constructor() {
    this._baseUrl = config.localAddress+config.wechatIndex.swiper
    this._defaultHeader = {
      "access-token":config.accessToken,
      "version":config.version,
      "user-token":config.userToken,
      'content-type': 'application/json'
    }
    this._request = new request
    this._request.setErrorHandler(this.errorHander)
  }

  /**
   * 統(tǒng)一的異常處理方法
   */
  errorHander(res) {
    console.error(res)
  }

  //獲取首頁(yè)swiper圖片
  getSwiperImage(){
    let data = {}
    const path = config.wechatIndex.swiperImages;
    return this._request.postRequest(this._baseUrl+path,data,this._defaultHeader).then(res => res.data)
  }
}
export default indexTest
注意:

如果需要在小程序全局調(diào)用驾窟,那么我們就需要在app.js下添加兩行代碼庆猫,先引入后初始化,截圖給你們看哈

image.png

image.png

4.這里我是以全局調(diào)用為主哦绅络,所以是直接app.indexTest.getSwiperImage()
  onLoad: function (options) {
    this.testRequest();
  },
  testRequest(){
    app.indexTest.getSwiperImage()
    .then(res => {      
      if(res.getData != undefined)
      {
        this.setData({
          topSwiperList: res.getData
        })        
      }else{
        console.log("沒有圖片");
        
      }
    }).catch(res => {
        wx.showToast({
            title: '出錯(cuò)了月培!',
            icon: 'none'
        })
    })
  }

以上就是對(duì)request的封裝啦嘁字,小伙伴可以直接嘗試一下哈,代碼都是可以復(fù)制粘貼使用的三無產(chǎn)品杉畜,無害纪蜒,無毒,無收費(fèi)4说纯续!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拌蜘,隨后出現(xiàn)的幾起案子杆烁,更是在濱河造成了極大的恐慌,老刑警劉巖简卧,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異烤芦,居然都是意外死亡举娩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門构罗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铜涉,“玉大人,你說我怎么就攤上這事遂唧≤酱” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵盖彭,是天一觀的道長(zhǎng)纹烹。 經(jīng)常有香客問我,道長(zhǎng)召边,這世上最難降的妖魔是什么铺呵? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮隧熙,結(jié)果婚禮上片挂,老公的妹妹穿的比我還像新娘。我一直安慰自己贞盯,他們只是感情好音念,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躏敢,像睡著了一般闷愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上父丰,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天肝谭,我揣著相機(jī)與錄音掘宪,去河邊找鬼。 笑死攘烛,一個(gè)胖子當(dāng)著我的面吹牛魏滚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坟漱,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鼠次,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了芋齿?” 一聲冷哼從身側(cè)響起腥寇,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎觅捆,沒想到半個(gè)月后赦役,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栅炒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年掂摔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赢赊。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乙漓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出释移,到底是詐尸還是另有隱情叭披,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布玩讳,位于F島的核電站涩蜘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锋边。R本人自食惡果不足惜皱坛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豆巨。 院中可真熱鬧剩辟,春花似錦、人聲如沸往扔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萍膛。三九已至吭服,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝗罗,已是汗流浹背艇棕。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工蝌戒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沼琉。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓北苟,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親打瘪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子友鼻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354