小程序HTTP请求封装

1、封装思想是什么?

提取公共部分,预留修改部分。提供修改参数接口。json

2、小程序HTTP 封装

const app = getApp()
let rootDocment = ''
let streamId = null
let deadline = null

function setStreamId (id, time) {
  streamId = id
  deadline = time
}
function getStreamId () {
  if (deadline && deadline > new Date().getTime()) {
    return streamId
  } else {
    app.globalData.token = null
    app.globalData.user.userInfo = {}
    return null
  }
}

function send (options) {
  let { url, header, method, data, success } = options
  let finalHeader = {
    'Accept': 'application/json',
    ...(header || {})
  }
  finalHeader['X-Stream-Id'] = getStreamId()
  wx.showLoading({
    mask: true,
    title: '数据正在加载中'
  })
  wx.request({
    url: rootDocment+url,
    header: finalHeader,
    method: method,
    data: data,
    success: function (res) {
      if (res.data.success) {
        success(res)
      } else {
        wx.showToast({
          title: '网络请求错误' + res.data.error_code,
          icon: 'none',
          duration: 2500
        })
      }
    },
    fail: function () {
      wx.showToast({
        title: '网络请求错误',
        icon: 'none',
        duration: 2500
      })
    },
    complete: function () {
      wx.hideLoading()
    }
  })
}

module.exports = {
  send,
  setStreamId
}

复制代码
相关文章
相关标签/搜索