# uni-http-interface **Repository Path**: mouxangitee/uni-http-interface ## Basic Information - **Project Name**: uni-http-interface - **Description**: uniapp请求拦截 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-28 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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) ```