小程序request封装

// http.js
let timestamp = Date.parse(new Date())
module.exports = {
  http(url, method, params, value = false) {
    return new Promise((resolve, reject) => {
      let host = 'https://xxxxx/';
      // 获取token,自行获取token和签名,token和签名表示每个接口都要发送的数据
      let token = wx.getStorageSync('token');
      let sign = ''
      // 获取签名 (后台怎么定义的,就传什么) 适具体情况传不传
      let data = {
        sign
      }
      // 在这里判断一下data是否存在,params表示前端需要传递的数据,params是一个对象,有三组键值对,
      // data:表示请求要发送的数据,success:成功的回调,fail:失败的回调,这三个字段可缺可无,其余字段会忽略
      if (params.data) {
        for (let key in params.data) { // 在这里判断传过来的参数值为null,就删除这个属性
          if (params.data[key] == null || params.data[key] == 'null') {
            delete params.data[key]
          }
        }
        data = {
          ...data,
          ...params.data
        }
      }
      // 就是拼接上前缀,此接口域名是开放接口,可访问 如果开发环境可以勾选详情选项的 不校验合法域名、TLS版本及HTTPS证书
      wx.request({
        url: host + url,
        // 判断请求类型,除了值等于'post'外,其余值均视作get其他的请求类型也可以自己加上的
        method: method == 'post' ? 'post' : 'get',
        data,
        // post请求 把header 该为 application/x-www-form-urlencoded 就可以了
        header: {
          'content-type': method == 'get' ? 'application/json' : 'application/x-www-form-urlencoded',
          'os-type': 'miniapp',
          'token': token,
          timestamp: timestamp,
        },
        success(res) {
        console.log('res',res)
        resolve(params.success && params.success(res))
        },
        fail(err) {
        console.log('err',err)
          wx.showToast({
            title: '服务器内部错误',
            icon: 'none',
            duration: 1500
          })
          reject(params.fail && params.fail(err))
        },
        complete() {
          setTimeout(() => {
            wx.hideLoading();
          }, 1500)
        }
      })
    })
  }
}
// api.js
// 在这里面定义所有接口,一个文件管理所有接口,易于维护
// 引入刚刚封装好的http模块,import属于ES6的语法,微信开发者工具必须打开ES6转ES5选项
import {http} from './http';
// 每一个接口定义一个函数,然后暴露出去,供逻辑代码调用
// 接口请求的路由地址以及请求方法在此处传递
function 定义方法名(params) {
  http('路径', 'post', params)
}
function 定义方法名(params) {
  http('路径', 'get', params)
}
// 暴露接口
export default {
定义好的方法名
}
//xml页面中引用
import http from '../../utils/api.js' // 引入api接口管理文件
//get请求跟post请求都这么写
http.定义好的名字({ // 调用接口,传入参数
      data: {
      这里写需要传的参数
      },
      success: res => {
        console.log('接口请求成功', res)
      },
      fail: err => {
        console.log(err)
      }
    })
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

先躲起来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值