在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁(yè)面

小程序如何完成網(wǎng)絡(luò)請(qǐng)求 (詳細(xì)過(guò)程)

小程序如何完成網(wǎng)絡(luò)請(qǐng)求 (詳細(xì)過(guò)程)

更新時(shí)間:2025-09-20 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開(kāi)應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一...
微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開(kāi)應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項(xiàng)門檻非常高的創(chuàng)新,經(jīng)過(guò)將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開(kāi)發(fā)環(huán)境和開(kāi)發(fā)者生態(tài)。

本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于小程序如何實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求 (詳細(xì)過(guò)程),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

對(duì)于小程序而言,網(wǎng)絡(luò)請(qǐng)求封裝的要比Android強(qiáng)大多了,這一點(diǎn)值得贊揚(yáng)。官方示例:

wx.request({
  url: 'test.php', //僅為示例,并非真實(shí)的接口地址
  data: {
     x: '' ,
     y: ''
  },  header: {    'content-type': 'application/json' // 默認(rèn)值
  },
  success: function(res) {
    console.log(res.data)
  }
})

but…but…這調(diào)用起來(lái)貌似很簡(jiǎn)單,但是,似乎有點(diǎn)不對(duì)勁?哪兒不對(duì)勁呢——每次調(diào)用的代碼太多了。而且,對(duì)于網(wǎng)絡(luò)請(qǐng)求的日志文件不好管理。這離我們最理想的方式還是有點(diǎn)差距的。
那么,我們最理想的方式是希望是怎么樣的呢?

1、代碼簡(jiǎn)潔,一行代碼去搞定。
2、對(duì)于常用的字段統(tǒng)一封裝管理。如 token、版本號(hào)version等
3、自定義異常處理。如未登錄時(shí),不用每寫一個(gè)接口都去判斷是否登錄、注冊(cè)等

 api.request1(data, function (result) { //數(shù)據(jù)請(qǐng)求成功,
  },   function(error){//失敗
 })

那么,基于上面的問(wèn)題。我來(lái)一步步進(jìn)行剖析。

一、網(wǎng)絡(luò)請(qǐng)求的場(chǎng)景分析

1、支持token傳入的網(wǎng)絡(luò)請(qǐng)求。

這種情況比較少見(jiàn)的。我現(xiàn)在的項(xiàng)目中就遇到了。大概意思是管理員可以操作旗下的其他的虛擬用戶。管理員登錄后生成一個(gè)token,每生成一個(gè)成員時(shí),會(huì)生成一個(gè)虛擬的virtualToekn,以后每次管理員操作這個(gè)成員時(shí),都需要用這個(gè)virtualToken,但是管理員獲取自己的信息時(shí),還是需要用自己的token。這個(gè)時(shí)候就要支持自定義的token傳入了。

2、網(wǎng)絡(luò)請(qǐng)求的劫持。

這種場(chǎng)景主要有兩種情況:

1、如果網(wǎng)絡(luò)失敗
2、沒(méi)有token時(shí),這種場(chǎng)景主要出現(xiàn)在登錄后置中。如商城類app查看購(gòu)物車等

解決方法:直接返回失敗,在發(fā)起網(wǎng)絡(luò)請(qǐng)求前結(jié)束本次網(wǎng)絡(luò)請(qǐng)求操作,減少預(yù)知的錯(cuò)誤網(wǎng)絡(luò)訪問(wèn)

3、支持自定義loading窗的彈出和隱藏控制

1、loading窗的彈出:這種場(chǎng)景比較多,如下拉刷新列表時(shí),是不需要loading窗出現(xiàn)的。但是獲取用戶信息是需要loading出現(xiàn)的
2、loading窗的隱藏:這種場(chǎng)景是如果調(diào)用一個(gè)接口成功后,然后要連續(xù)調(diào)用第二個(gè)接口。這樣在第一次接口成功后,不應(yīng)該讓loading窗消失,而是最后一次接口結(jié)束后才隱藏。

4、對(duì)網(wǎng)絡(luò)不同的錯(cuò)誤,進(jìn)行處理

二、代碼分析

/**
 * 自定義token  請(qǐng)求
 * 
 * isShowLoading :true  彈出loading窗
 * isEndLoading: true  最后需要隱藏loading窗。若是false,則不隱藏
 * token: 可以自定義token。用戶虛擬賬號(hào)使用車輛
 */
 export function requestApi(requestData, isShowLoading = true,isEndLoading = true, token = null,onSuccess, onFail) {  
 let app = getApp().globalData;  // 1、檢查是否已經(jīng)登錄,在未登錄的時(shí)候,可以提前緩存一個(gè)臨時(shí)token欺騙本次檢查。等登錄完成后,再更新token值
  if (!util.hasLogin()) {    return;
  }  // 2、檢查網(wǎng)絡(luò)狀態(tài)
  if (!util.checkNetworkConnected()) { //沒(méi)有網(wǎng)絡(luò)
    onFail("網(wǎng)絡(luò)請(qǐng)求失敗,稍后再試")    return;
  }  if (!requestData) {
    onFail("數(shù)據(jù)異常,請(qǐng)稍后再試")    return;
  }  let cacheToken =  util.takeToken()  let newToken = token == null ? cacheToken : token
  console.log("newToken===========>", newToken)
  requestData.token = newToken
  requestData.version = app.version
  console.log("==================================================開(kāi)始請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)start========================================")
  console.log(requestData)
  console.log("==================================================開(kāi)始請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)end===========================================")  var baseUrl = app.debug ? app.debugUrl : app.releaseUrl    
  console.log("===baseUrl===>" + baseUrl)  if (isShowLoading){
    util.showLoading("加載中")
  }
  const requestTask = wx.request({
    url: baseUrl,    data: requestData,    header: {      'content-type': 'application/json'
    },
    method: 'POST',
    dataType: 'json',
    success: function(res) {
      console.log("==================================================返回請(qǐng)求結(jié)果start========================================")
      console.log(res.data)
      console.log("==================================================返回請(qǐng)求結(jié)果end===========================================")      
      if (res.data.code == 0) { //成功
        // console.log("onSuccess===========>", onSuccess);
        onSuccess(res.data)
      } else if (res.data.code == 1021) { //未繳納押金
        wx.navigateTo({
          url: '/pages/recharge/recharge',
        })        return false;
      } else if (res.data.code == 1006) { //余額不足
        wx.navigateTo({
          url: '/pages/deposited/deposited',
        })        return false;
      } else if (res.data.code == 1019) { //未實(shí)名
        wx.navigateTo({
          url: '/pages/certify/certify',
        })        return false;
      } else if (res.data.code == 1001) { //token過(guò)期
        wx.reLaunch({
          url: '/pages/login/login'
        });        return false;
      } else { //失敗
        let error = res.data == null || typeof (res.data) == "undefined" ? "網(wǎng)絡(luò)請(qǐng)求失敗,請(qǐng)稍后再試" : res.data.desc
        onFail(error)
        console.log("error===========>", error);
      }
    },
    fail: function(res) {
      console.log("onFail===========>", res);
      onFail("網(wǎng)絡(luò)請(qǐng)求失敗,稍后再試")
    },
    complete: function(res) {
      console.log("complete===========>", isEndLoading);      
      if (isEndLoading){
        wx.hideLoading()
      }
    }
  })
};

三、網(wǎng)絡(luò)環(huán)境統(tǒng)一切換。

在app.json中統(tǒng)一配置

  // 全局的數(shù)據(jù),可以提供給所有的page頁(yè)面使用
  globalData: {
    token: "",
    version: "version版本號(hào)",
    releaseUrl: "正式版url",
    debugUrl: "測(cè)試版url",    debug: true   //true  debug環(huán)境,false正式環(huán)境
  },

這樣,以后切換網(wǎng)絡(luò)環(huán)境只需要修改debug值即可。

四、二次封裝

/**
 * 自定義loading  框請(qǐng)求
 * 
 * isShowLoading :true  彈出loading窗
 * isEndLoading: true  最后需要隱藏loading窗。若是false,則不隱藏
 */
 export function request(requestData, isShowLoading = true, isEndLoading = true, onSuccess, onFail){  
 this.requestApi(requestData, isShowLoading, isEndLoading, null, function (result) {
    onSuccess(result)
  }, function (error) {
    onFail(error)
  })
}/**
 *  帶有l(wèi)oading 框的 不能自定義的請(qǐng)求
 * 
 */export function request1(requestData, onSuccess, onFail) {  // console.log("onSuccess========request1===>", success, fail);
  requestApi(requestData, true, true, null, function (result) {
    onSuccess(result)
  }, function (error) {
    onFail(error)
  })
}/**
 * 自定義token  請(qǐng)求
 * 
 * isShowLoading :true  彈出loading窗
 * isEndLoading: true  最后需要隱藏loading窗。若是false,則不隱藏
 * token: 可以自定義token。用戶虛擬賬號(hào)使用車輛
 */export function request2(requestData, isShowLoading = true, isEndLoading = true, token = null, onSuccess, onFail) {
  requestApi(requestData, isShowLoading, isEndLoading, token, function (result) {
    onSuccess(result)
  }, function (error) {
    onFail(error)
  })
}/**
 * 自定義loading  框請(qǐng)求
 * 
 * isShowLoading :true  彈出loading窗
 * isEndLoading: true  最后需要隱藏loading窗。若是false,則不隱藏
 */export function request3(requestData, isShowLoading = true, isEndLoading = true, token, onSuccess, onFail) {
  requestApi(requestData, isShowLoading, isEndLoading, token, function (result) {
    onSuccess(result)
  }, function (error) {
    onFail(error)
  })
}

end

最后,控制臺(tái)查看日志的示意圖為:
20180915143125445.png

以上就是小程序如何實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求 (詳細(xì)過(guò)程)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開(kāi)應(yīng)用。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 欧美黑人又粗又大又爽免费| 黄色aaa级片| 免费超爽大片黄| 欧美在线观看成人| 成人免费毛片播放| 一本—道久久a久久精品蜜桃| 韩国一区二区在线播放| 美女扒开大腿让男人桶| 国产91对白刺激露脸在线观看| 日韩福利视频在线| 400部精品国偷自产在线观看 | 欧美在线观看www| 毛片毛片毛片毛| 日韩少妇内射免费播放18禁裸乳| 日韩大片一区二区| 91免费黄视频| 国产精品99久久久久久大便| 成人免费无码av| 精品人妻大屁股白浆无码| 五月天中文字幕在线| 欧美一区二区视频在线播放| mm131亚洲精品| av免费网站观看| 久草青青在线观看| 黄色一级片在线看| 久在线观看视频| 成人观看免费完整观看| 久久国产午夜精品理论片最新版本| 免费看一级大黄情大片| 欧美综合在线观看视频| 成人免费a级片| 亚洲一区二区三区av无码| 成人污网站在线观看| 久久久久福利视频| 狠狠干视频网站| 黄色片网址在线观看| 激情伊人五月天| 少妇激情一区二区三区| 污污视频网站在线| 免费在线精品视频| 男人操女人逼免费视频| 欧美黄色性生活| 美女黄色片网站| 国产一级爱c视频| 五月天av在线播放| 加勒比海盗1在线观看免费国语版| 欧美激情国内自拍| 免费极品av一视觉盛宴| 久在线观看视频| 高清av免费看| 久久在线中文字幕| 黄色av免费在线播放| 亚洲天堂av免费在线观看| 男女超爽视频免费播放| 国产高潮免费视频| 99在线观看视频免费| 亚洲成人福利在线| 男人和女人啪啪网站| 色香蕉在线观看| 国内外成人免费在线视频| 激情伊人五月天| 青青草视频在线免费播放 | r级无码视频在线观看| 一本一道久久a久久综合蜜桃| 欧美中文字幕在线观看视频| 日本不卡一区二区在线观看| 黄色国产精品视频| 久久综合九色综合88i| 日本a在线天堂| 日本久久高清视频| 国产欧美精品一二三| 日韩精品你懂的| 九色porny自拍| 午夜啪啪小视频| 在线视频一二三区| 91传媒免费视频| 天堂8在线天堂资源bt| av网站大全免费| 国产午夜伦鲁鲁| 欧美激情成人网| 亚洲欧美在线精品| 久久www视频| 日本免费黄视频| 免费看污污网站| 特级黄色录像片| 国产视频一视频二| www.夜夜爽| 欧美一级视频在线播放| 久久久久久久久久久福利| 精品日韩久久久| 国产尤物av一区二区三区| 免费看黄在线看| 亚洲天堂伊人网| 六月婷婷在线视频| 老司机久久精品| 成熟老妇女视频| 国产 欧美 日韩 一区| 日日摸天天爽天天爽视频| 熟女视频一区二区三区| 97视频在线免费播放| 黄色录像特级片| 国产原创精品在线| 精品一卡二卡三卡| 日韩少妇内射免费播放| 视色,视色影院,视色影库,视色网| 国产亚洲精品网站| 69sex久久精品国产麻豆| 尤物网站在线看| 小早川怜子一区二区三区| 又粗又黑又大的吊av| 欧美视频在线免费播放| 国产片侵犯亲女视频播放| 日本黄色a视频| 毛毛毛毛毛毛毛片123| 老司机午夜性大片| 日韩av一卡二卡三卡| 91女神在线观看| 国产高清999| 国产精品亚洲天堂| 成年丰满熟妇午夜免费视频| 91.com在线| 91猫先生在线| 午夜精品久久久久久久无码| 国产欧美日韩网站| 免费日韩中文字幕| 亚洲精品中文字幕无码蜜桃| 三上悠亚在线一区二区| 潘金莲一级淫片aaaaaa播放1| 亚洲热在线视频| 国产麻花豆剧传媒精品mv在线| 97公开免费视频| 青青草原国产免费| 国产精品97在线| 大桥未久一区二区| 日本在线观看a| 日本精品福利视频| 亚洲五月天综合| 5月婷婷6月丁香| 男人c女人视频| 爱爱爱视频网站| 亚洲成熟丰满熟妇高潮xxxxx| 五月天av影院| 国产一级做a爰片久久| 欧美二区在线视频| 国产一级片中文字幕| 精品视频一区二区在线| 黄大色黄女片18第一次| 波多野结衣 作品| www.日本xxxx| 精品国偷自产一区二区三区| 日韩一级免费在线观看| 自拍偷拍 国产| 欧美亚洲日本一区二区三区| 污免费在线观看| 黄色片视频在线| 国产成人亚洲精品无码h在线| 日本特黄在线观看| 国产成人美女视频| 91丨porny丨探花| 国产乱淫av片杨贵妃| 亚洲精品偷拍视频| 青青草综合在线| 国产乱人伦精品一区二区三区| 五月天开心婷婷| 99爱视频在线| 久久久久久久久久福利| 91淫黄看大片| 亚洲成年人专区| 激情视频小说图片| 97超碰国产精品| 精品久久久久久无码中文野结衣| xxxxxx在线观看| 国产av熟女一区二区三区| 一二三四视频社区在线| 久久精品视频16| 亚洲这里只有精品| caoporm在线视频| 97免费视频观看| 日韩中文字幕免费在线| 亚洲精品国产一区二区三区| 特黄特黄一级片| 欧美 国产 小说 另类| 亚洲精品中文字幕乱码无线| 波多野结衣与黑人| 在线观看免费成人av| 天天干天天玩天天操| 日本日本19xxxⅹhd乱影响| 中文字幕在线观看日| 国产性生活免费视频| 中文字幕视频三区| 国产极品尤物在线| 五月天男人天堂| the porn av| 浮妇高潮喷白浆视频| 亚洲成人福利在线| 69堂免费视频| 婷婷无套内射影院| 在线观看17c| 中文字幕黄色大片| 可以免费观看av毛片|