小程序请求浅封装

request.js

import wepy from 'wepy'
// 接口前缀
import { prefix } from '@/config.js'


function checkStatus(response) {
  if (response.statusCode >= 200 && response.statusCode < 300) return response
  const error = new Error(response.errMsg)
  error.response = response
  throw error
}

function valideData(obj) {
  const { data } = obj
  const { code, message, data: resData } = data
  if (Number(code) === 1) {
    return resData
  } else {
    throw message
  }
}

function catchErr(err) {
  const { errMsg } = err
  wx.showToast({
    title: errMsg,
    icon: 'none',
    duration: 2000,
  })
}

export default function request(url, options) {
  return wepy.request({
    url: `${prefix}${url}`,
    ...options
  }).then(checkStatus)
    .then(valideData)
    .catch(catchErr)

}


base.js

import qs from 'qs'
import request from './request.js'
// 对get、post、delete、put四种方法做简单封装
// 后面所有的请求都是调用这几个方法


export function get({ path, params }) {
  const pStr = params ? `?${qs.stringify({...params, time: new Date().getTime()})}` : ''
  return request(`${path}${pStr}`, {
    method: 'GET',
    header: {
      'Content-Type': 'application/json',
      Accept: 'application/json'
    }
  })
}


export function post({ path, params }) {
  return request(path, {
    method: 'POST',
    header: {
      'Content-Type': 'application/json',
      Accept: 'application/json'
    },
    data: JSON.stringify(params)
  })
}


export function remove({ path, params }) {
  return request(path, {
    method: 'DELETE',
    header: {
      'Content-Type': 'application/json',
      Accept: 'application/json'
    },
    data: JSON.stringify(params)
  })
}


export function put({ path, params }) {
  return request(path, {
    method: 'PUT',
    header: {
      'Content-Type': 'application/json',
      Accept: 'application/json'
    },
    data: JSON.stringify(params)
  })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值