微信小程序HTTP請求封裝

微信小程序HTTP請求封裝

最近做的事情有些許的亂,一會兒Android,一會兒Ionic,一會又微信小程序。現在又要搞一個微信小程序,需要用到HTTP請求,好吧,其實只要不是單機小遊戲,都會用到HTTP請求,微信小程序官方提供了HTTP請求的方法,其實封裝的很好了,直接用就行,但是還是在封裝一次吧,好維護一點。

HTTP請求封裝

首先在page文件夾下創建一個js文件夾存放封裝的http請求,其實放哪裏看自己需要,都行。
在js文件夾下創建一個http.js文件,裏面是封裝好的http請求代碼,其實叫啥名都行,看你心情。
裏面封裝的代碼是這個樣子的:

/**
 * TODO http請求封裝
 * 王佳偉
 * 2020年3月19日13:43:48
 */

// 配置文件
const config = require('./config.js')
var app = getApp();
const host = config.httpServer; // 服務器baseUrl

/**
 * POST請求,
 * URL:接口
 * postData:參數,json類型
 * doSuccess:成功的回調函數
 * doFail:失敗的回調函數
 */
function postData(url, postData, doSuccess, doFail) {
  wx.request({
    //項目的真正接口,通過字符串拼接方式實現
    url: host + url,
    // 這個header根據你的實際改!
    header: {
      'Content-Type': 'application/json',
      'cookie': config.httpToken,
      'Request-Origin': 'app'
    },
    data: postData,
    method: 'POST',
    success: function (res) {
      //參數值爲res.data,直接將返回的數據傳入
      if (res.data.result.token) { // 如果有token保存下來,下次請求帶着token訪問
        config.httpToken = res.data.result.token;
        console.log("token--> ", config.httpToken)
      }
      doSuccess(res.data);
    },
    fail: function () {
      doFail();
    },
  })
}

/**
 * GET請求,
 * URL:接口
 * getData:參數,json類型
 * doSuccess:成功的回調函數
 * doFail:失敗的回調函數
 */
function getData(url, getData, doSuccess, doFail) {
  wx.request({
    url: host + url,
    header: {
      'Content-Type': 'application/json',
      'X-Access-Token': config.httpToken,
      'Request-Origin': 'app'
    },
    method: 'GET',
    data: getData,
    success: function (res) {
      doSuccess(res.data);
    },
    fail: function () {
      doFail();
    },
  })
}

/**
 * module.exports用來導出代碼
 * js文件中通過var http = require("../util/request.js")  加載
 * 在引入引入文件的時候"  "裏面的內容通過../../../這種類型,小程序的編譯器會自動提示,因爲你可能
 * 項目目錄不止一級,不同的js文件對應的工具類的位置不一樣
 */
module.exports.postData = postData;
module.exports.getData = getData;

裏面使用了一個配置文件config.js,我把請求的服務器的BaseUrl放進去了,方便維護,config.js文件長下面這樣:

module.exports = {
  httpServer: "http://localhost",  // 業務服務器地址 每個人的不一樣,按照需要改!
  httpToken: null,  // 存放業務服務器提供的 token 
}

HTTP 使用

首先在需要使用HTTP請求的地方引入。

var http = require('../js/http.js')   // 每個人的路徑不一樣,按照自己的改

GET請求

http.getData('/getList', {}, (rep) => {
      console.log(rep)
    }, (error) => {
      console.log(error)
})

POST請求

     let canshu = {
      'username': 'wjw',
      'password': 'wjw'
    }
    http.postData('/login',canshu,(rep)=>{
      if (rep.status && rep.status != 200) {
        return;
      }
      console.log(rep);
    })

好,就這樣吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章