更新记录

0.0.6(2022-03-08)

发布0.0.6,可用npm安装:npm i uni-http-interface


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

uni-http-interface

使用方法

第一步:配置封装拦截器和基础路径:http.js

import http from 'uni-http-interface';

// 公共配置项,三种api通用
http.config = {
    baseUrl: 'http://baidu.com', // 基础路径
    timeout: 6000, // 超时时间
}
// 对应接口配置项
http.requestConfig {
    // uni.request(OBJECT)的 OBJECT 参数: https://uniapp.dcloud.io/api/request/request.html#request
    ...
}
http.uploadFileConfig {
    // uni.uploadFile(OBJECT)的 OBJECT 参数: https://uniapp.dcloud.io/api/request/network-file.html#uploadfile
    ...
}
http.downloadFileConfig {
    // uni.downloadFile(OBJECT)的 OBJECT 参数: https://uniapp.dcloud.io/api/request/network-file.html#downloadfile
    ...
}

http.interceptor.invoke = config => {
    // 请求拦截前触发
    return config
}

http.interceptor.success = res => {
    // 请求成功回调拦截
    // 成功回调
    return Promise.resolve(response.data)
    // 走失败回调
    return Promise.reject(response)
}

http.interceptor.fail = err => {
    // 请求失败回调拦截
    // 走失败回调
    return Promise.reject(response)
}

http.interceptor.complete = res => {
    // 请求完成回调拦截
    // 成功回调
    return Promise.resolve(response.data)
    // 走失败回调
    return Promise.reject(response)
}

// 已封装:get,post,put,delete,upload,download请求,如需其他请求自行在下方封装

export default http

第二步:使用http.js

import http from '@/utils/http'
// 接口请求拦截
let interceptor = {
    invoke: config => {
        // 请求拦截前触发,同:http.interceptor.invoke,该配置存在会最终取该配置的参数
        return config
    },
    success: response => {
        // 请求拦截前触发,同:http.interceptor.success,该配置存在会优先执行
        // 请求成功回调拦截
        // 成功回调
        return Promise.resolve(response.data)
        // 走失败回调
        return Promise.reject(response)
    },
    fail: error => {
        // 请求拦截前触发,同:http.interceptor.fail,该配置存在会优先执行
        // 走失败回调
        return Promise.reject(error)
    },
    complete: response => {
        // 请求拦截前触发,同:http.interceptor.complete,该配置存在会优先执行
        // 请求成功回调拦截
        // 成功回调
        return Promise.resolve(response.data)
        // 走失败回调
        return Promise.reject(response)
    }
}
// 请求的参数
let data = {
    ...,
}
// OBJECT参数
let option = {
    ...,
}
// 发出get请求
http.get('/user/userInfo', data, option, interceptor)
// 发出post请求
http.post('/user/login', data option, interceptor)
// 发出put请求
http.put('/user/userInfo', data option, interceptor)
// 发出delete请求
http.delete('/user/userInfo', data option, interceptor)
// 上传文件请求
http.upload('/upload/file', {
    file, // 上传文件字段,三选一即可:https://uniapp.dcloud.io/api/request/network-file.html#uploadfile
    ...option // option参数
}, interceptor)
// 下载文件
http.download('/download/file', option, interceptor)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问