亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序中網絡請求封裝的示例分析

發布時間:2021-06-10 11:59:51 來源:億速云 閱讀:173 作者:小新 欄目:移動開發

這篇文章主要介紹微信小程序中網絡請求封裝的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

微信小程序之網絡請求簡單封裝實例詳解

在微信小程序中實現網絡請求相對于Android來說感覺簡單很多,我們只需要使用其提供的API就可以解決網絡請求問題。

  • 普通HTTPS請求(wx.request)

  • 上傳文件(wx.uploadFile)

  • 下載文件(wx.downloadFile)

  • WebSocket通信(wx.connectSocket)

為了數據安全,微信小程序網絡請求只支持https,當然各個參數的含義就不在細說,不熟悉的話可以;可以去閱讀官方文檔的網絡請求api,當我們使用request時header的content-typ默認是application/json,在文檔中指出method 的value必須是大寫,不過經過測試,小寫也能請求成功。request默認的超時時間是60s,如果我們想自定義超時時間,我們可以在app.json中加入下面代碼片段,分別設置request,socket,和上傳文件及下載文件的超時時間。

"networkTimeout": {
  "request": 5000,
  "connectSocket": 5000,
  "uploadFile": 5000,
  "downloadFile": 5000
 }

設置過超時時間,我們就開始封裝網絡請求,平時我們所接觸的網絡請求,一般會分為兩類,一類是在后臺運行的,沒有加載對話框提示,另一種就是有提示,如提示正在加載數據,,那么我們就以此為線索來進行封裝。先創建一個network的網絡請求工具類,然后

// 展示進度條的網絡請求
// url:網絡請求的url
// params:請求參數
// message:進度條的提示信息
// success:成功的回調函數
// fail:失敗的回調
function requestLoading(url, params, message, success, fail) {
 console.log(params)
  wx.showLoading({
   title: message,
  })
 wx.request({
  url: url,
  data: params,
  header: {
   'content-type': 'application/x-www-form-urlencoded'
  },
  method: 'post',
  success: function (res) {
   //console.log(res.data)
    wx.hideLoading()
   if (res.statusCode == 200) {
    success(res.data)
   } else {
    fail()
   }

  },
  fail: function (res) {
    wx.hideLoading()
    fail()
  },
  complete: function (res) {

  },
 })
}

上面函數很好理解,參數的含義已在代碼中解釋,在網絡請求開始前,先展示Loading對話框,提示用戶當前網絡正在請求數據,當網絡請求成功或者失敗后調用wx.hideLoading()取消提示框的展示。在api中還提供了wx.showNavigationBarLoading()用于顯示當前頁面的導航條加載動畫,那么如果我們想展示這個動畫可以在requestLoading執行開始調用wx.showNavigationBarLoading(),然后在網絡請求成功或者失敗后調用wx.hideNavigationBarLoading()隱藏導航欄加載動畫。

當網絡請求成功并且狀態碼為200時,將請求到的數據回調通過success(res.data)回調給我們的方法,在上面我們沒有對失敗原因進行細分,當然你也可以給失敗回調加個參數,用于提示用戶失敗的原因,如res.statusCode ==500時提示服務器內部錯誤,res.statusCode ==-1時提示請檢查網絡,res.statusCode ==404,找不到地址等等。

然后我們在創建一個不顯示對話框,用戶后臺請求數據的請求函數,為了少寫代碼,我們共用上面的函數,如下

//不顯示對話框的請求
function request(url, params, success, fail) {
 this.requestLoading(url, params, "", success, fail)
}

我們看到我們最終還是調用的requestLoading,那么我們可以在該函數作下判斷,如果提示信息message==''就不顯示對話框。

最終的代碼

function request(url, params, success, fail) {
 this.requestLoading(url, params, "", success, fail)
}
// 展示進度條的網絡請求
// url:網絡請求的url
// params:請求參數
// message:進度條的提示信息
// success:成功的回調函數
// fail:失敗的回調
function requestLoading(url, params, message, success, fail) {
 console.log(params)
 wx.showNavigationBarLoading()
 if (message != "") {
  wx.showLoading({
   title: message,
  })
 }
 wx.request({
  url: url,
  data: params,
  header: {
   //'Content-Type': 'application/json'
   'content-type': 'application/x-www-form-urlencoded'
  },
  method: 'post',
  success: function (res) {
   //console.log(res.data)
   wx.hideNavigationBarLoading()
   if (message != "") {
    wx.hideLoading()
   }
   if (res.statusCode == 200) {
    success(res.data)
   } else {
    fail()
   }

  },
  fail: function (res) {
   wx.hideNavigationBarLoading()
   if (message != "") {
    wx.hideLoading()
   }
   fail()
  },
  complete: function (res) {

  },
 })
}
module.exports = {
 request: request,
 requestLoading: requestLoading
}

使用就很簡單了,如下

//路徑根據自己項目路徑修改
var network = require("/utils/network.js")
getData:function(){
  network.requestLoading(URL.MY_SCORE, that.data.params, '正在加載數據', function (res) {
  //res就是我們請求接口返回的數據
   console.log(res)
  }, function () {
   wx.showToast({
    title: '加載數據失敗',
   })
  })
}

以上是“微信小程序中網絡請求封裝的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

老河口市| 青岛市| 邢台县| 汉川市| 万年县| 金寨县| 屏东县| 来凤县| 大田县| 昭苏县| 贵溪市| 垫江县| 新河县| 上虞市| 隆回县| 英吉沙县| 靖宇县| 衡南县| 翁源县| 贡觉县| 沙湾县| 健康| 彩票| 神木县| 巧家县| 玉林市| 湘阴县| 宜春市| 宁波市| 家居| 兴业县| 南京市| 通州区| 林芝县| 方正县| 阳东县| 宁河县| 厦门市| 遂宁市| 浮山县| 玉环县|