uniapp 封装网络请求

文章目录

          • 一、前端
            • 1. 封装网络请求
            • 2. 封装模块请求方法
          • 二、后端
            • 2.1. 返回对象
            • 2.2. 热搜接口
          • 三、微信模拟请求
            • 3.1. Network
            • 3.2. Console

一、前端
1. 封装网络请求
  1. 创建 utils 文件夹
  2. 创建 request.js ,封装请求对象
// const BASE_URL = 'https://api.imooc-blog.lgdsunday.club/api';
const BASE_URL = 'http://127.0.0.1:8080';
function request({ url, data, method }) {return new Promise((resolve, reject) => {// 发起网络请求uni.request({url: BASE_URL + url,data,method,success: ({ data }) => {// 响应成功,获取数据,解析数据if (data.success) {resolve(data);} else {// 响应失败,给用户提示uni.showToast({title: data.message,icon: 'none',mask: true,duration: 3000,});reject(data.message);}},fail: (error) => {reject(error);},complete: () => {// 关闭加载uni.hideLoading();},});});
}export default request;

后端需要按照前的接收的对象,封装后端返回的对象

2. 封装模块请求方法

原则:每个模块都有自己的请求管理api

  1. 创建 api 文件夹
  2. 创建 hot 文件,封装 hot 相关的请求方法
    hot.js
import request from '../utils/request';export function getHotTabs() {return request({url: '/hot/tabs'});
}

数据列表

<template><view class="hot-container"><view v-for="(item, index) in tabData" :key="index">{{ item.label }} - {{ index }}</view></view>
</template><script>
import { getHotTabs } from 'api/hot';
export default {data() {return {tabData: [],};},// 组件实例配置完成,但是DOM尚未渲染,进行网络请求,配置响应数据created() {this.loadHotTabs();},methods: {/*** 获取热搜标题数据*/async loadHotTabs() {// uniapp 支持 async awaitconst  res= await getHotTabs();this.tabData = res.content;console.log('res', res.content);},},
};
</script><style lang="scss"></style>
二、后端
2.1. 返回对象
package com.gblfy.wx.miniapp.vo;/*** 返回封装对象** @author gblfy* @date 2022-01-02*/
public class ResponseDto<T> {/*** 业务上的成功或失败*/private boolean success = true;/*** 返回码*/private String code;/*** 返回信息*/private String message;/*** 返回泛型数据,自定义类型*/private T content;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public boolean getSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getContent() {return content;}public void setContent(T content) {this.content = content;}@Overridepublic String toString() {final StringBuffer sb = new StringBuffer("ResponseDto{");sb.append("success=").append(success);sb.append(", code='").append(code).append('\'');sb.append(", message='").append(message).append('\'');sb.append(", content=").append(content);sb.append('}');return sb.toString();}
}
2.2. 热搜接口
package com.gblfy.wx.miniapp.controller;import com.gblfy.wx.miniapp.vo.ResponseDto;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 热搜列表用于测试前后端数据交互** @author gblfy* @date 2022-01-02*/
@RestController
public class HotController {@GetMapping("/hot/tabs")public ResponseDto hotList() {Map<String, Object> map = new HashMap<>();map.put("id", 1);map.put("label", "热榜");Map<String, Object> map2 = new HashMap<>();map2.put("id", 2);map2.put("label", "热榜2");Map<String, Object> map3 = new HashMap<>();map3.put("id", 3);map3.put("label", "热榜3");Map<String, Object> map4 = new HashMap<>();map4.put("id", 4);map4.put("label", "热榜4");Map<String, Object> map5 = new HashMap<>();map5.put("id", 5);map5.put("label", "热榜5");List<Map<String, Object>> list = new ArrayList<>();list.add(map);list.add(map2);list.add(map3);list.add(map4);list.add(map5);ResponseDto dto = new ResponseDto();dto.setContent(list);return dto;}
}
三、微信模拟请求
3.1. Network

在这里插入图片描述

3.2. Console

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求伯君领衔5代技术人对话,00后浪来袭1024程序员节

10 月 23-25 日&#xff0c;由 CSDN 等多家单位精心筹划的“长沙 中国 1024 程序员节”将盛大举行。程序员节活动以开源为主议题&#xff0c;包括&#xff1a;2 场岳麓尖峰对话&#xff0c;2020 开源技术英雄大会&#xff0c;10 场热门技术分论坛/峰会&#xff0c;创意集市&am…

容器环境自建数据库、中间件一键接入阿里云 Prometheus 监控

阿里云Prometheus服务4月9日发布重大升级&#xff0c;支持容器环境下一键接入MySQL、Redis、MangoDB、ElasticSearch等数据库和Kafka、ZooKeeper等中间件的监控&#xff0c;并提供开箱即用的监控大盘&#xff0c;现在接入更有15天免费试用。 15天免费试用地址&#xff0c;点击这…

状态管理 - 全局状态管理工具

文章目录一、单向数据流1. 理念示意图2. 简述二、什么是全局状态管理模式三、重点概念3.1. 什么是全局状态管理模式&#xff1f;3.2.全局状态管理工具&#xff1f;3.3. 什么是 vuex四、在项目中导入 vuex4.1. 状态管理配置4.2. 注册vuex五、测试 vuex 是否导入成功5.1. 创建搜索…

Nacos SDK for Scala 发布

脱胎于历经阿里巴巴10年生产验证的内部产品&#xff0c;支持具有数百万服务的大规模场景&#xff0c;Nacos作为高性能的动态服务发现、配置管理和服务管理平台从2018年开源以来&#xff0c;版本迭代速度很快&#xff0c;已经发布到1.2.1&#xff0c;已支持企业使用Nacos生产高可…

对话阿里云:开源与自研如何共处?

头图 | CSDN 下载自东方 IC来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;责编 | 晋兆雨从「鲜为人知」的专业名词&#xff0c;到 2006 年的精准定义&#xff0c;再到如今全面上云时代的「百花齐放」&#xff0c;云计算的发展趟过蛮荒之地&#xff0c;已形成极具规…

Flink 流批一体的实践与探索

自 Google Dataflow 模型被提出以来&#xff0c;流批一体就成为分布式计算引擎最为主流的发展趋势。流批一体意味着计算引擎同时具备流计算的低延迟和批计算的高吞吐高稳定性&#xff0c;提供统一编程接口开发两种场景的应用并保证它们的底层执行逻辑是一致的。对用户来说流批一…

uniapp 用户登录

文章目录一、登录基础1. 登录组件2. 页面引用组件3. 明确登录的实现思路4. 封装 action 调用登录接口5. 保存用户登录状态6. 成已登录的用户视图6. 现退出登录功能一、登录基础 1. 登录组件 对于 登录 功能来说提供了两个登录的入口。 那么大家想一下&#xff0c;现在我们已…

Vue 组件开发 - 数据输入框组件

目录 设计通用组件的一般思路组件效果1. HTML结构2. index.js3. input-number.js3.1 input-number.js代码注解设计通用组件的一般思路 明确需求; 设计API(组件的API:只来自props、events 和 slots); 2.1 确定命名、规则 2.2 编写业务逻辑 即使逻辑的第一版没做好,后续还可…

活动预告 | 2020移动云客户高端峰会即将揭幕,邀您一起携手云端!

一直以来&#xff0c;移动云致力于不断丰富自身产品体系&#xff0c;延伸服务深度和广度&#xff0c;提供“云网一体、贴身服务、随心定制、安全可控”的云服务&#xff0c;致力成为5G时代你身边的智慧云。依托中国移动网络资源与本地化服务团队&#xff0c;移动云为政府、互联…

如何在CDN边缘节点执行你的JavaScript?

Serverless和边缘计算都是目前云计算领域备受瞩目的研究和应用方向。做为拥有超过130Tbps带宽分发能力的阿里云CDN&#xff0c;巨大的边缘网络有超过2800个节点遍布全球&#xff0c;如何将中心源站的计算能力下沉到边缘节点&#xff0c;进一步降低客户端访问延时进而提升用户体…

微信小程序+腾讯地图 获取定位与地图选点插件

文章目录一、思路二、逆地址解析2.1. app.json2.2. 页面加入2.3. 后台代码三、地图插件调用3.1. app.json加入3.2. js页面加入3.3. wxml页面成功截图:腾讯位置服务官网&#xff1a; https://lbs.qq.com一、思路 通过 wx.getLocation 返回经纬度传到后台&#xff0c;后台调用腾…

前端工具安装和运行相关

目录1. nodemon 运行出错&#xff1a;无法运行脚本2. XXX~待续1. nodemon 运行出错&#xff1a;无法运行脚本 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\nodemon.ps1&#xff0c;因为在此系统上禁止运行脚本。 解决办法&#xff1a; 管理员身份打开powerShell&#xf…

友盟+联合EB级云数据 实现友盟域和企业私域数据全面融合

友盟联合EB级云数据 实现友盟域和企业私域数据全面融合 2020-04-28 互联网大数据计算 国内领先的第三方全域数据智能服务商友盟&#xff0c;联合阿里云EB级云数据仓库MaxCompute为企业提供面向分析的&#xff0c;实现友盟域数据与企业私域数据全面融合的自助分析服务“U-DOP…

微信小程序之实现地图定位(使用腾讯位置服务插件)

文章目录一. 腾讯位置服务插件简介1. 完整的地图能力2. 地图插件的优势二. 开通腾讯位置服务三、接入插件四、 开发者密钥配置五、插件的使用一. 腾讯位置服务插件简介 1. 完整的地图能力 腾讯位置服务基于微信提供的小程序插件能力&#xff0c;专注于&#xff08;围绕&#…

分享16个经典的免费UI素材网站

免费字体 www.fontspace.com 一键AI抠图 www.remove.bg/zh 在线PS工具/可以转换Sketch文件

单人开发场景下的测试环境实践

在软件研发过程中&#xff0c;“测试环境”是部署最频繁、也是开发者使用最频繁的一种运行环境&#xff0c;稳定而易用的测试环境能够极大提高开发者的工作效率和幸福感。为更好的将阿里巴巴在测试环境管理方面的实践和经验跟广大开发者分享&#xff0c;《云效说码》策划了《阿…

函数计算如何访问 PostgreSQL 数据库

函数计算&#xff08;Function Compute&#xff09;&#xff1a;函数计算 是事件驱动的全托管计算服务。使用函数计算&#xff0c;您无需采购与管理服务器等基础设施&#xff0c;只需编写并上传代码。函数计算为您准备好计算资源&#xff0c;弹性地可靠地运行任务&#xff0c;并…

智能可穿戴迎来长续航焕新活力 出门问问TicWatch Pro 3即将国内上市

人工智能独角兽公司出门问问将于10月21日面向国内市场正式发布全新一代旗舰级全智能手表TicWatch Pro 3&#xff08;4G版&#xff09;。出门问问携手新浪科技举行新品线上发布会&#xff0c;出门问问创始人兼CEO李志飞以及出门问问研发高级总监张博将以直播形式与消费者见证Tic…

uniapp 微信小程序打包发布

文章目录一、打包小程序1. HBuilder X打包2. 小程序发行3. 点击上传4. 扫码体验5. 正式版本一、打包小程序 1. HBuilder X打包 选中项目-点击发行&#xff08;U&#xff09;- 小程序-(微信仅适用于uniapp)&#xff08;W&#xff09; 2. 小程序发行 填写微信小程序名称和微…

祝贺!两位 Apache Flink PMC 喜提 Apache Member

摘要&#xff1a;近期 Apache 软件基金会&#xff08;以下简称 ASF &#xff09;举行了一年一度的董事会选举会议&#xff0c;两位 Apache Flink PMC 当选为 2020 年 ASF 新成员&#xff0c;即 Apache Member。目前&#xff0c;国内&#xff08;华人&#xff09;近 30 位 Apach…