封装微信小程序网络请求接口 request

  • Post author:
  • Post category:小程序




封装小程序网络请求接口

小程序提供了异步请求的函数wx.request(),很方便,但在实际使用上代码还是不够灵活。

于是封装了一下网络请求的方法,总结了两种调用模式。

有欠缺部分欢迎提出指点,好让小弟改进~

在和app.js 同级别 建立common.js

放入以下代码

/**
 * 网络请求接口
 * @param {*} options 
 * @param {string} url 请求网址
 * @param {object} data 请求数据
 * @param {string} method 请求方法
 * @param {object} header 请求头
 */
export const httpRequest = options => {
  let {
    url,
    data = {},
    method = 'GET',
    header = {
      'content-type': 'application/x-www-form-urlencoded'
    }
  } = options
  return new Promise((resolve, reject) => {
    if (url === undefined || url === '')
      reject('url不能为空')
    try {
      wx.request({
        url,
        data,
        method,
        header,
        success: res => {
          if (res.statusCode === 200) {
            resolve(res.data)
          } else {
            reject(res)
          }
        },
        fail: err => {
          reject(err)
        }
      })
    } catch (e) {
      reject(e)
    }
  })
}



方法一、全局直接调用

app.js中引入

import { httpRequest as http } from 'common'

app.js里添加

// 网络请求
http: http,

在页面JS方法中直接引用

app.http({
  url: 'https://xxx.com/xx/',
  data: {},
  method: 'GET'
}).then(res => {
  console.log(res)
}).catch(err => {
  console.log(err)
})

catch可去掉,只有当网络请求失败时才在这里显示错误信息



方法二、建立api文件夹,二次封装请求方法,简化请求流程

在小程序根目录创建文件夹api,里面再创建userInfo.js文件

放入以下代码

import { httpRequest as http } from '../common'

// 修改用户信息
export const update = (id, name) => {
  return http({
    url: 'https://xxx.com/xx/',
    data: {
      id: id,
      name: name
    },
    method: 'PUT'
  })
}

在页面JS中引用

import { update } from '../../../api/userInfo'

在页面JS方法中进行调用

update(1, '张三')
  .then(res => {
    if (res.code === 200) {
      let data = res.data
      console.log(data)
    } else {
      console.log(res)
    }
  })



版权声明:本文为weixin_42651703原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。