在项目下创建一个文件夹https

然后在文件夹下面创建两个文件api.js  request.js
api.js 用于存放项目的请求接口
request.js 用于存放封装的请求接口get post

在static下创建文件appConfig.js

这个文件用于配置项目的配置项或者说是配置开关
可以配置请求的基础路径
有些部分在开发中 ,隐藏起来,展示不对外进行展示; const appConfig = {
baseUrl: 'https://api.ecscc.net', //基础路径
}
export default appConfig

request.js

import appConfig from "../static/appConfig.js"
export function apiapi(networkUrl,methodsWay,dataCont,util){
// 默认为开启错误提示
if(util == undefined) {
util = {
showError: true,//开启错误提示
}
}
return new Promise((resolve,reject)=>{
uni.request({
url: appConfig.baseUrl+networkUrl, //由基础路径和接口地址
method:methodsWay||"GET",//请求的方式必须大写
data:dataCont||{},//参数
header: {
// 这里等会会配置下?????????????????????????还有token
'Content-Type': 'application/json',
'Authorization':"携带的token"
},
// 成功使用resolve
success: (res) => {
if(res.data&&res.data.success){
resolve(res)
}else{
/**
* 请求失败,是否要提示出来;
* showError: true,开启错误提示
* showError: false,关闭错误提示
* */
if(util.showError){
showError(res);
}
resolve(res)
}
},
//失败调用reject,
fail:(err)=>{
// 失败做处理
if(util.showError){
showError(res);
}
reject(err)
}
});
})
} // 错误处理
const showError = (error) => {
if(error){
switch (error.data.code) {
case 401:
uni.showToast({
title: '没有权限',
icon:'none',
duration: 1000
});
break; case 403:
uni.showToast({
title: '拒绝访问',
icon:'none',
duration: 1000
});
break; case 404:
uni.showToast({
title: '很抱歉,资源未找到!',
icon:'none',
duration: 1000
});
break; case 500:
uni.showToast({
title: '没有权限',
icon:'none',
duration: 1000
});
break; case 502:
uni.showToast({
title: '服务器异常',
icon:'none',
duration: 1000
});
break; case 504:
uni.showToast({
title: '网络超时',
icon:'none',
duration: 1000
});
break; default:
uni.showToast({
title:"网络错误",
icon:'none',
duration: 1000
});
break
}
}
}

api.js

这里导入的时候,只能够是apipi,因为你暴露的时候,就是apiapi;
当然你也可以使用别名去修改名称 import {apiapi} from "./request.js" /**
* 请求的方式大写
* */ export const listArrlist= (params,util)=>apiapi('/api/userInfo/teacherInfo/getTeacherClassValue', 'GET',params,util); export const demo2= (params)=>apiapi('/school/campusPro/getWeatherByOrgId', 'POST',params); // 这一句等价于
// const demo2=function(params){
// return apiapi('/school/campusPro/getWeatherByOrgId', 'POST',params)
// }
// export demo2
在项目中如何使用
index.vue 引入(我这里是进行按需引入的)
import {listArrlist, demo2} from "../../https/api.js" created(){
this.roomMettingGrantApi();
this.hospitalIconNmaeScroolApi();
}, methods: {
roomMettingGrantApi(){
demo2().then(res=>{ })
}, // 医院图标 医院姓名 滚动
hospitalIconNmaeScroolApi(){
demo2().then(res=>{
})
},
}
展示先写在这里;
后面会继续跟新的哈~~! 有些同学不喜欢按需引入的话
可以直接挂载在原型上的哈 在main.js中进行挂载的~
参考 https://www.cnblogs.com/ishoulgodo/p/12805699.html

uni-app封装网络请求的更多相关文章

  1. App 组件化/模块化之路——如何封装网络请求框架

    App 组件化/模块化之路——如何封装网络请求框架 在 App 开发中网络请求是每个开发者必备的开发库,也出现了许多优秀开源的网络请求库.例如 okhttp retrofit android-asyn ...

  2. [iOS微博项目 - 3.3] - 封装网络请求

    github: https://github.com/hellovoidworld/HVWWeibo   A.封装网络请求 1.需求 为了避免代码冗余和对于AFN框架的多处使用导致耦合性太强,所以把网 ...

  3. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据

    § 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...

  4. 09事件传递参数-封装网络请求api get和post合并整合在一起

    1==>通过点击事件进行传递参数 <view bindtap="goEdution" data-index="5">西南大学</view ...

  5. 转-封装网络请求库,统一处理通用异常 (基于volley网络请求库)

    http://blog.csdn.net/kroclin/article/details/40540761 一.前言 volley的发布让网络请求也变得十分便利,但是我们通常懒得很想用一两句代码实现一 ...

  6. andriod开发,简单的封装网络请求并监听返回.

    一.为什么封装 因为android 4.0 以后的发送网络请求必须要放到异步线程中,而异步线程必须跟handle合作才能更新主线程中的UI,所以建议用一个类继承handler来异步处理网络请求. 二. ...

  7. 第六十二篇、AFN3.0封装网络请求框架,支持缓存

    1.网络请求 第一种实现方式: 功能:GET POST 请求 缓存逻辑: 1.是否要刷新本地缓存,不需要就直接发起无缓存的网络请求,否则直接读取本地数据 2.需要刷新本地缓存,先读取本地数据,有就返回 ...

  8. IOS 京东相关app 出现“网络请求失败,请检查您的网络设置”的解决办法

    问题情况 在IOS系统下,下载安装或者更新新版的京东相关app之后,打开app直接就是“网络请求失败,请检查网络设置”,无论是数据连接还是wifi都试了,都是网络请求失败. 然而打开无线局域网-使用无 ...

  9. 分析移动端APP的网络请求抓包

    为了方便,本文以 iOS 系统来进行演示. 使用代理 移动操作系统中都有可以设定系统代理的设置,比如在 iOS 中可以通过 Settings->WLAN 看到很多 Networks,通过点击它们 ...

  10. ios中封装网络请求类

    #import "JSNetWork.h" //asiHttpRequest #import "ASIFormDataRequest.h" //xml 的解析 ...

随机推荐

  1. IPC-6012F-CN-中文版\英文版,2024 刚性印制板的鉴定及性能规范

    IPC-6012F-CN-中文版,2024 刚性印制板的鉴定及性能规范 链接:https://pan.baidu.com/s/1z1x5JPmcRHzeIQgMsMQRxg提取码:1234 https ...

  2. Postgresql之基础

    Postgresql:  https://www.postgresql.org/ [安装] 删除已经存在的pg: yum remove -y postgresql* && rm -rf ...

  3. python下的多线程与多进程

    多进程: 进程我们可以理解为是一个可以独立运行的程序单位,比如打开一个浏览器,这就开启了一个浏览器进程:打开一个文本编辑器,这就开启了一个文本编辑器进程.但一个进程中是可以同时处理很多事情的,比如在浏 ...

  4. Blazor 组件库 BootstrapBlazor 中Alert组件介绍

    组件介绍 Alert组件几乎是组件库里必不可少的组件了,即使浏览器,也自带了一个alert,会弹出一个模态框. 但是这个模态框有点太丑了,所以各大组件库分分实现了自己的Alert组件. 当然Boots ...

  5. 自有Jar包生成Docker镜像

    前言 经常会有些自己写的一些SpringBoot小项目,为了实现一些小的功能/需求,但是部署的时候,不管是生成jar包,还是war包部署到tomcat中,都容易因为需要部署的环境(比如java版本.t ...

  6. React使用useRef调用子组件方法

    前情 公司前端主技术栈是react系,最近在提取组件的时候想到vue可以通过ref获取子组件,再调用子组件的方法,于是想在react中实现同样效果. 实现原理 父组件调用useRef获取ref对象,再 ...

  7. 正则g修饰符对test方法的影响

    标签: js 坑位 最近在使用正则的时候遇到一个问题,从一个数组中选出符合我要求的元素做进一步使用,但正则验证莫名的失效不通过,坑位代码片段如下 测试地址 : var reg = /\[.{32}\] ...

  8. DB-GBP功能使用探索

    目录 1.DBGPT支持的功能 2.配置StarRocks数据库 3. ChatBI 4. APP创建使用 5. 元数据库配置 6. API 调用探索 6.1 app 6.2 datasources ...

  9. 【Amadeus原创】查看正在运行的docker run参数

    如何查看一个运行docker 容器的docker run启动参数,假设没有使用docker-compose这样的编排工具. 现在我如何进行重启,如何找回此前的启动命令? [root@mysql3 ~] ...

  10. gradle 很棒

    一直以为 gradle 就是 maven 的一个易读版,表达上比 XML 更精简了,实际上还是maven,似乎没有存在的必要. 但是,万万没想到,这玩意儿竟然是一个语言,竟然可以调试!也就是说,它不是 ...