在线看毛片视频-国产免费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>
  • av无码精品一区二区三区| 无码人妻丰满熟妇区毛片| mm131亚洲精品| 激情视频综合网| 男人女人黄一级| 亚洲成人天堂网| 校园春色 亚洲色图| www.这里只有精品| 9999在线观看| 欧美激情亚洲天堂| 国产精品一区二区免费在线观看| 精品视频在线观看一区二区| 国产在线视频在线| 国产伦精品一区二区三区四区视频_| 日韩网站在线免费观看| 久久综合色视频| 精品久久久久久久无码| 国内外免费激情视频| 国产成人美女视频| 国内外成人激情免费视频| 丁香花在线影院观看在线播放| 欧美 丝袜 自拍 制服 另类| 日本成年人网址| 自拍一级黄色片| 免费在线a视频| 一级片视频免费观看| 四虎影院一区二区| 亚洲不卡中文字幕无码| www.99r| 女人色极品影院| 日韩精品你懂的| 青草网在线观看| 在线观看国产中文字幕| 91免费版看片| 中文字幕第88页| www插插插无码免费视频网站| 日韩欧美xxxx| 男人天堂手机在线视频| 日本人视频jizz页码69| 欧美人与动牲交xxxxbbbb| 簧片在线免费看| 夜夜添无码一区二区三区| 国产欧美一区二| 日批视频在线免费看| 亚洲天堂第一区| 天天操狠狠操夜夜操| 99re在线视频免费观看| 国产91沈先生在线播放| 亚洲18在线看污www麻豆| 岳毛多又紧做起爽| 99视频在线免费播放| 免费观看亚洲视频| 欧美a级黄色大片| 色综合色综合色综合色综合| aaaaaa亚洲| 国产福利视频在线播放| 黄色片网址在线观看| 日本天堂免费a| 国产精品无码乱伦| 自拍偷拍视频在线| 日本美女久久久| 日日噜噜噜夜夜爽爽| 人人爽人人爽av| 国产xxxxhd| 亚洲天堂第一区| 欧妇女乱妇女乱视频| 800av在线免费观看| 免费观看国产视频在线| 国产手机视频在线观看| 亚洲国产一二三精品无码| 色中文字幕在线观看| 日韩视频一二三| 免费一级特黄毛片| 少妇高潮喷水久久久久久久久久| 国产最新免费视频| 99免费视频观看| 999久久久精品视频| 国产av第一区| 午夜精品久久久久久久无码 | 亚洲黄色av网址| 黄色国产小视频| 五月天开心婷婷| 日韩中文在线字幕| 欧美,日韩,国产在线| 久久久久久久久久福利| 香蕉视频禁止18| 在线观看成人免费| 女人天堂av手机在线| 国产小视频精品| 国产精品日韩三级| 国产福利一区视频| 潘金莲一级淫片aaaaaa播放1| 久久综合久久久久| 三上悠亚在线一区二区| 国产精品视频一二三四区| 国产精品秘入口18禁麻豆免会员| 久热精品在线观看视频| 黄色成人在线免费观看| 国产成人综合一区| 日韩在线观看a| 一二三级黄色片| 国产婷婷一区二区三区| 69久久久久久| 毛片在线视频播放| 黄色a级在线观看| 91色国产在线| 日本丰满少妇xxxx| 黄色a级在线观看| 亚洲性图一区二区| 青青草原av在线播放| 欧美性受黑人性爽| 青青草原国产在线视频| 麻豆av免费在线| 青青青免费在线| 麻豆传媒网站在线观看| 亚洲天堂伊人网| 在线免费观看av的网站| 免费在线观看毛片网站| 国产日本在线播放| 日韩人妻一区二区三区蜜桃视频| 鲁一鲁一鲁一鲁一av| 无码人妻丰满熟妇区毛片18| 久无码久无码av无码| 蜜桃视频成人在线观看| www.亚洲自拍| 一级黄色片在线免费观看| 欧美国产日韩在线播放| 国产精品免费观看久久| 一区二区传媒有限公司| 日日摸日日碰夜夜爽无码| 99久热在线精品视频| 久操手机在线视频| 韩日视频在线观看| 国产二级片在线观看| 漂亮人妻被中出中文字幕| 国产亚洲欧美在线视频| 国产又黄又大又粗视频| 欧美成人精品欧美一级乱| 亚洲色成人一区二区三区小说| 蜜臀av色欲a片无码精品一区 | 国产熟人av一二三区| 国产激情在线观看视频| 欧美大尺度做爰床戏| 伊人成人222| 樱空桃在线播放| 日韩五码在线观看| 国产日产欧美视频| 日韩av片网站| 影音先锋男人的网站| 国产成人三级视频| 国自产拍偷拍精品啪啪一区二区 | 日本免费在线视频观看| 男女啪啪的视频| 黄色网页免费在线观看| 亚洲成色www.777999| 婷婷视频在线播放| 成人毛片视频网站| 中文字幕 欧美日韩| 国产 日韩 欧美在线| wwwwxxxx日韩| 国产91在线亚洲| 日本中文字幕高清| 日韩视频 中文字幕| 97在线免费公开视频| 热久久久久久久久| 欧美成人一区二区在线观看| 国产精品久久久毛片| 僵尸世界大战2 在线播放| www.亚洲高清| 北条麻妃在线视频观看| 污污的网站免费| 欧美 日韩精品| 一二三四中文字幕| 国产成年人视频网站| 激情综合在线观看| 国产女主播av| 人人爽人人爽av| 日韩av手机版| 欧美精品色婷婷五月综合| www亚洲国产| 日本在线观看视频一区| 777久久久精品一区二区三区| 欧美日韩中文字幕在线播放| 性欧美1819| www.日本一区| 日本成人中文字幕在线| av免费中文字幕| 国产美女网站在线观看| 日本一区午夜艳熟免费| 黄色a级三级三级三级| 性欧美1819| 狠狠操狠狠干视频| 中文字幕亚洲乱码| 日本黄大片一区二区三区| jizz欧美激情18| 能看的毛片网站| 国产91色在线观看| 超碰在线97免费| 日本 片 成人 在线| 91n.com在线观看|