uni-app封装网络请求
在项目下创建一个文件夹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封装网络请求的更多相关文章
- App 组件化/模块化之路——如何封装网络请求框架
App 组件化/模块化之路——如何封装网络请求框架 在 App 开发中网络请求是每个开发者必备的开发库,也出现了许多优秀开源的网络请求库.例如 okhttp retrofit android-asyn ...
- [iOS微博项目 - 3.3] - 封装网络请求
github: https://github.com/hellovoidworld/HVWWeibo A.封装网络请求 1.需求 为了避免代码冗余和对于AFN框架的多处使用导致耦合性太强,所以把网 ...
- 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据
§ 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...
- 09事件传递参数-封装网络请求api get和post合并整合在一起
1==>通过点击事件进行传递参数 <view bindtap="goEdution" data-index="5">西南大学</view ...
- 转-封装网络请求库,统一处理通用异常 (基于volley网络请求库)
http://blog.csdn.net/kroclin/article/details/40540761 一.前言 volley的发布让网络请求也变得十分便利,但是我们通常懒得很想用一两句代码实现一 ...
- andriod开发,简单的封装网络请求并监听返回.
一.为什么封装 因为android 4.0 以后的发送网络请求必须要放到异步线程中,而异步线程必须跟handle合作才能更新主线程中的UI,所以建议用一个类继承handler来异步处理网络请求. 二. ...
- 第六十二篇、AFN3.0封装网络请求框架,支持缓存
1.网络请求 第一种实现方式: 功能:GET POST 请求 缓存逻辑: 1.是否要刷新本地缓存,不需要就直接发起无缓存的网络请求,否则直接读取本地数据 2.需要刷新本地缓存,先读取本地数据,有就返回 ...
- IOS 京东相关app 出现“网络请求失败,请检查您的网络设置”的解决办法
问题情况 在IOS系统下,下载安装或者更新新版的京东相关app之后,打开app直接就是“网络请求失败,请检查网络设置”,无论是数据连接还是wifi都试了,都是网络请求失败. 然而打开无线局域网-使用无 ...
- 分析移动端APP的网络请求抓包
为了方便,本文以 iOS 系统来进行演示. 使用代理 移动操作系统中都有可以设定系统代理的设置,比如在 iOS 中可以通过 Settings->WLAN 看到很多 Networks,通过点击它们 ...
- ios中封装网络请求类
#import "JSNetWork.h" //asiHttpRequest #import "ASIFormDataRequest.h" //xml 的解析 ...
随机推荐
- rabbitmq-c与amqp扩展安装
最近需要使用RabbitMQ进行消息队列处理 1.安装rabbitmq-c 在安装amqp之前需要先安装rabbitmq-c扩展 rabbitmq-c下载网址:https://github.com/a ...
- Redis之客户端工具RedisInsight
RedisInsight简介 RedisInsight是Redis官方出品的可视化管理工具,可用于设计.开发.优化你的Redis应用.支持深色和浅色两种主题,界面非常炫酷!可支持String.Hash ...
- canvas(八)绘制图片和坐标转换
1.绘制图片 相关api及其参数:ctx.drawImage() 参数 说明 参数一 图片对象 参数二,三 可选,图片裁剪的基点(原图左上角为原点) 参数四,五 可选,图片裁剪区域的宽高(基于原图大小 ...
- Python版本与Jupyter记录
最近使用Python的时候,遇到一个版本问题.我本地安装的Python版本是3.8.0,在使用match...case...语法时,提示如下报错: 查询之后,才知晓3.8.0还没有match语法,ma ...
- Java并发 —— 线程并发(一)
线程和进程 进程就是一个内存中运行的应用程序 线程是当前进程中的一个执行任务(控制单元),负责当前进程中程序的执行 区别与联系 根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的 ...
- OS之《内存管理》
程序装入方式 绝对装入:程序逻辑地址和物理地址是完全对应的.不现实 可重定位装入:装入的时候重新 计算内存地址.程序中的实际地址加上程序载入的起始地址:但是解决不了进程挂起 后重新唤醒的问题.唤醒的后 ...
- E. Photoshoot for Gorillas
题意 给定一个整数 \(T\),代表共有\(T\)组测试用例,对于每组测试用例: 给定四个整数 \(n,m,k和w(1 \leq n,m \leq 2 * 10^5, 1 \leq w \leq n ...
- 使用Python实现两组数据纵向排序
一.引言 在数据分析和处理过程中,排序是一项非常常见的操作.排序操作能够让我们更清晰地理解数据,从而进行进一步的分析和处理.在Python中,排序操作通常可以通过内置函数或第三方库来实现.本文将详细讲 ...
- 12C++循环结构-for循环(2)——教学
一.循环变量为字符型 (第32课 26个兄弟姐妹)参考视频1 试编一程序,按字典顺序输出26个字母. 流程图: 思考:先顺序输出26个小写英文字母,再逆序输出26个大写英文字母. 循环可以是递增型循环 ...
- 使用 Autofac, MediatR 和 FluentValidator 构建松耦合 ASP.NET Core API 应用
使用 MediatR 和 FluentValidator 1. 创建示例文件夹 Sample 首先,创建示例文件夹 Sample. 2. 创建表示层项目 Web 在示例文件夹 Sample 中,使用标 ...