uni-request的使用

下载插件:

npm install uni-request --save

api文件夹下封装统一请求request.js文件

/**
 * @Description: 请求接口统一封装
 * @Author liaoxuewu
 * @create 2022/01/25 13:22
 */
import uniRequest from '../uni-request/index.js'
import config from '../config.js'

// 全局配置
uniRequest.defaults.baseURL = config.baseUrl;

uniRequest.timeout = 1000 * 60 // 请求超时时间

// 请求拦截
uniRequest.interceptors.request.use(
  request => {
    // 配置基本信息
    const userInfo = uni.getStorageSync('uni_user_info')
    if (userInfo) {
      // 设置请求token
      const token = userInfo.token
      request.headers.Authorization = 'Bearer ' + token
    }
    return request
  },
  err => {
    console.log('请求失败')
    return Promise.reject(err)
  }
)

// 响应拦截
uniRequest.interceptors.response.use(
  function (response) {
    console.log('返回进入拦截成功')
    return Promise.resolve(response)
  },
  function (err) {
    if (err && err.response) {
      switch (err.response.status) {
        case 301:
          err.message = '请求的数据具有新的位置且更改是永久的'
          break
        case 302:
          err.message = '请求的数据临时具有不同 URI'
          break
        case 304:
          err.message = '未按预期修改文档'
          break
        case 305:
          err.message = '必须通过代理来访问请求的资源'
          break
        case 400:
          err.message = '请求中有语法问题,或不能满足请求'
          break
        case 402:
          err.message = '所使用的模块需要付费使用'
          break
        case 403:
          err.message = '当前操作没有权限'
          break
        case 404:
          err.message = '服务器找不到给定的资源'
          break
        case 407:
          err.message = '客户机首先必须使用代理认证自身'
          break
        case 415:
          err.message = '请求类型不支持,服务器拒绝服务'
          break
        case 417:
          err.message = '未绑定登录账号,请使用密码登录后绑定'
          break
        case 426:
          err.message = '用户名不存在或密码错误'
          break
        case 429:
          err.message = '请求过于频繁'
          break
        case 500:
          err.message = '服务器内部错误,无法完成请求'
          break
        case 501:
          err.message = '服务不支持请求'
          break
        case 502:
          err.message = '网络错误,服务器接收到上上游服务器无效响应'
          break
        case 503:
          err.message = '服务器无法处理请求'
          break
        case 504:
          err.message = '网络请求超时'
          break
        case 999:
          err.message = '系统未知错误,请反馈给管理员'
          break
      }
    } else {
      err.message = '连接服务器失败!'
    }
    console.log(err.message)
    return Promise.reject(err)
  }
)

export const POST = ({ url, params = {}, data = {}, headers = {}, ...others }) =>
  uniRequest({
    url,
    method: 'POST',
    data,
    params,
    headers,
    ...others
  })

export const GET = ({ url, params = {}, data = {}, headers = {}, ...others }) =>
  uniRequest({
    url,
    method: 'GET',
    data,
    params,
    headers,
    ...others
  })

export const DELETE = ({ url, params = {}, data = {}, headers = {}, ...others }) =>
  uniRequest({
    url,
    method: 'DELETE',
    data,
    params,
    headers,
    ...others
  })

export const PUT = ({ url, params = {}, data = {}, headers = {}, ...others }) =>
  uniRequest({
    url,
    method: 'PUT',
    data,
    params,
    headers,
    ...others
  })

api/moudules目录下login.js文件引用:

/**
 * @Description: 登录
 * @Author liaoxuewu
 * @create 2022/01/25 15:57
 */
import { POST } from '@/api/request.js'

const baseUrl = uni.getStorageSync('uni_base_url')

export default {
  /**
    * @description: api登录请求
    * @param {*}
    * @return {*} 请求响应promise
    */
  login(
    body = {
      baseUrl: '',
      params: {},
      data: {},
      headers: { 'content-type': 'application/json' }
    }
  ) {
    return POST({
      url: body.baseUrl + '/login/Login_CF',
      ...body,
      data: {
        ...body.data
      }
    })
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端小木

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

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

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

打赏作者

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

抵扣说明:

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

余额充值