request 请求类封装
创始人
2024-04-18 17:14:49
0

一:前言:

request 请求数据的三种方式

request 请求数据的第一种方式  需要在methods当中定义一个方法,然后在onLoad()方法当中 , 监听页面加载的时候,当页面进行加载,调用该方法,进行数据的获取

但是这里获取到的数据是没有进行加工的,获取到的都是当前页面当中的所有数据

onLoad(){// 初始化事件,调用后台数据获取到数据this.init()}methods: {//初始化事件,获取顶部选项卡//request的第一种请求方式init(){uni.request({url: 'http://ceshi3.dishait.cn/api/index_category/data',method: 'GET' ,data: {},success: res =>{console.log(res)},fail:()=>{console.log('请求失败')},complete:() =>{console.log('请求完成')}});},}

request 请求数据的第二种方式  是通过promise 方法当中的  .then()  方法进行数据的获取

onLoad(){// 初始化事件,调用后台数据获取到数据this.init()}methods: {//初始化事件,获取顶部选项卡//request的第二种请求方式 promise  使用的是 .then 方法进行获取init(){uni.request({url: 'http://ceshi3.dishait.cn/api/index_category/data',method: 'GET' ,}).then(data => {let [error , result] = data console.log(error);// 请求的数据出现失败的时候,返回的数据信息if(result.statusCode !== 200){//请求的信息出现错误的时候,return console.log(result.data.msg) }else {console.log(result);}})},}

request 请求数据的第二种方式  是通过async 和 await 来进行数据的获取

onLoad(){// 初始化事件,调用后台数据获取到数据this.init()}methods: {//初始化事件,获取顶部选项卡//request的第三种请求方式 async awaitasync init(){let [error, result] = await uni.request({url: 'http://ceshi3.dishait.cn/api/index_category/data',method: 'GET',});console.log(error);// 请求的数据出现失败的时候,返回的数据信息if (result.statusCode !== 200) {return console.log(result.data.msg) //请求的信息出现错误的时候,} else {console.log(result);}},}

        以上三种数据的请求方式都可以获取到url里面的数据信息

二:request的封装和使用 (未对get和post 进行封装)

通过以上三种request 的请求,我们可以对request类数据请求进行一个简单类型的封装,

封装代码如下(可能存在不同)

该文件是在common底下lib文件夹下面的request.js文件

export default {//全局配置common: {baseurl: "http:// ceshi3.dishait.cn/api",//请求头header是告诉浏览器你发送的数据格式是什么,浏览器接收后做相对应的处理并返回你要的数据格式!!!header: {'Content-Tlype ': ' application/json;charset=UTF-8 ','Content-Type': 'application/x- www-form-urlencoded '},data:{},method:'GET',dataType:'json'},//请求返回 promiserequest(options = {} ){//组织参数options.url = this.common.baseurl + options.urloptions.header = options.header || this.common.headeroptions.data = options.data || this.common.dataoptions.method = options.method || this.common.methodoptions.dataType = options.dataType || this.common.dataType//请求数据return new Promise ((res,rej)=>{// 请求前// 在此处,我们可以进行token的验证操作//请求中uni.request({...options,success:res =>{//服务端失败if(result.statusCode !==200){uni.showToast({title:result.data.msg || '服务端失败',icon:"none"});return rej()}//服务端数据请求成功let data = result.data.msgres(data)},fail:(error) =>{uni.showToast({title:error.errMsg || '请求失败',icon:"none"});return rej()}})})},
}

当我们没有对get或者poet请求进行封装的时候,我们在使用的时候需要进行如下的书写。

在应用的时候,我们需要先引用该文件,在可以进行使用

import $H from '@/common/lib/request.js';onLoad() {// 初始化事件,调用后台数据获取到数据this.init()},methods: {// 封装完成之后,进行数据的请求init(){$H.request({url:"/index_category/data"}).then((res)=>{console.log("请求成功")console.log(res)}).catch(()=>{console.log("请求失败")})},}

三:request的封装和使用 (对get和post 进行封装)

export default {//全局配置common: {baseurl: "http:// ceshi3.dishait.cn/api",//请求头  ,header是告诉浏览器你发送的数据格式是什么,浏览器接收后做相对应的处理并返回你要的数据格式!!!header: {'Content-Tlype ': ' application/json;charset=UTF-8 ','Content-Type': 'application/x- www-form-urlencoded '},data:{},method:'GET',dataType:'json'},//请求返回 promiserequest(options = {} ){//组织参数options.url = this.common.baseurl + options.url//这里的header头部需要在验证token之后才可以进行使用options.header = options.header || this.common.headeroptions.data = options.data || this.common.dataoptions.method = options.method || this.common.methodoptions.dataType = options.dataType || this.common.dataType//请求数据return new Promise ((res,rej)=>{// 请求前// 在此处,我们可以进行token的验证操作//请求中uni.request({...options,success:res =>{//服务端失败if(result.statusCode !==200){uni.showToast({title:result.data.msg || '服务端失败',icon:"none"});return rej()}//服务端数据请求成功let data = result.data.msgres(data)},fail:(error) =>{uni.showToast({title:error.errMsg || '请求失败',icon:"none"});return rej()}})})},//get 请求get(url , data = {} , options = {}){options.url = urloptions.data = dataoptions.method = "GET"return this.request(options)},//post 请求post(url , data = {} , options = {}){options.url = urloptions.data = dataoptions.method = "POST"return this.request(options)}
}

请求方式也封装成功之后,对数据的请求的两种获取方式如下:

方式一:

import $H from '@/common/lib/request.js';onLoad() {// 初始化事件,调用后台数据获取到数据this.init()},methods: {//封装get请求之后,进行数据的请求  获取方式一async init(){let data =await $H.get("/index_category/data")// 判断里面是否存在数据//下方就是对获取到的数据进行加工提炼,将相应的数据进行获取if(data){//初始化tabBarsthis.tabBars = data.categoryconsole.log(data.category)}},}

方式二:

import $H from '@/common/lib/request.js';onLoad() {// 初始化事件,调用后台数据获取到数据this.init()},methods: {//封装get请求之后,进行数据的请求 获取方式二:init(){$H.get('/index_category/data').then((res)=>{//初始化tabBarsthis.tabBars = res.categoryconsole.log(res.category)})},}

后续会加上token验证之后,对其封装进行对应的补充

上一篇:PHP+Nginx配置备忘

下一篇:JS 杂记

相关内容

热门资讯

“一站式”逛展 买全球好物 第六届西洽会现场,嘉宾在现场品尝美食。 第六届西洽会现场,市民在汽车展区了解重庆造新能源货车。...
看“她力量”如何重塑产业数字化... 转自:新安晚报  在数字经济蓬勃发展的新时代,安徽移动的一批女性科技工作者正以创新为笔、技术为墨,在...
两部门将加强私募基金犯罪管理 转自:北京商报司法保障资本市场改革发展迎来纲领性文件。5月15日,最高人民法院、中国证监会联合发布《...
观点直击 | 回稳市场下 贝壳... 观点网 今年3月,在贝壳2024年度业绩电话会上,管理层首次分享了公司在AI上的整体布局和思考。两个...
央行等部门拟进一步丰富“互换通... 转自:证券日报延长合约期限,扩充产品谱系    本报讯 (记者刘琪)5月15日,中国人民银行发布消息...
丹麦考虑发展核电 转自:新安晚报   丹麦气候、能源和公用事业大臣拉尔斯·奥高5月13日表示,丹麦政府正在考虑解除维持...
政策助力融资回暖 房企单月募资... 转自:北京商报随着政策支持力度持续加大,房地产行业融资环境呈现边际改善。北京商报记者梳理发现,近一个...
自我救赎与成长 ——读《追风筝... 寒假里被《追风筝的人》深深地迷住了。作者用朴实却充满力量的文字,指引着我跟随主人公阿米尔的脚步,走进...
以学习促提升 共建绿色家园 转自:新安晚报  为积极响应第三届全国城市生活垃圾分类宣传周活动,进一步提升基层垃圾分类工作者的专业...
姑溪河当涂闸枢纽工程建设按下“... 星报讯 连日来,马鞍山市当涂县姑溪河畔机器轰鸣、塔吊林立。在姑溪河当涂闸枢纽工程的施工现场,数百名...
阳光驿站:彩票公益金点亮乡村儿... 玻璃杯中变幻的化学实验液面折射出孩子们惊喜的眼神,沾满泥土的小手在菜园里播下春天的种子。这些温暖而动...
业绩继续下滑 安德玛重组计划效... 转自:北京商报安德玛的业绩还在下滑。5月14日,安德玛发布2025财年业绩报告显示,公司营收下降9%...
河北启动“民法典宣传月”集中示... 转自:千龙网河北省司法厅、省国资委今天在河北钢铁集团研发中心共同举办“典亮国企·法赋新程”活动暨河北...
125%→10%,24%税率暂... 5月14日12时01分起,我国对原产于美国的进口商品加征关税调整措施开始实施。有关事项如下:一、调整...
合肥市建平实验小学卧云校区举办... 为了进一步提高教育教学质量,提升家校共育水平,合肥市建平实验小学卧云校区于2025年5月14日举办了...
调研速递|[上市公司名称]接受... 5月15日,[上市公司名称]举行业绩说明会,吸引了参加深圳证券交易所“机巧灵动・赋能新制造”主题集体...
万科再获大股东支持 深铁集团提... 万科企业股份有限公司(以下简称“万科”)再获大股东借款支持。5月15日,万科披露称,深圳市地铁集团有...
研究部署改革开放、风险防控等工...   本报讯 5月15日,省委深改委暨自贸港工委会议召开,研究部署海南自由贸易港重点改革举措落实、扩大...
美国最高法院警惕特朗普限制公民... 转自:财联社【美国最高法院警惕特朗普限制公民身份政策的生效】财联社5月16日电,美国最高法院表示,它...
2025年服贸会9月10日启幕 转自:北京商报今年起,服贸会将固定于每年9月第二个星期的星期三开幕;举办地点调整为在首钢园区“一址举...