当前位置: 首页 > news >正文

微信小程序的请求函数封装(ts版本,uniapp开发)

 主要封装函数代码:

interface HttpOptions {url: string;method?: string;headers?: { [key: string]: string };data?: any;
}class Http {private timeout: number;private baseUrl: string;public constructor() { this.timeout = 60 * 1000;this.baseUrl = 'http://localhost:8088/';}//全局设置地址public setBaseUrl(url: string) {this.baseUrl = url;}//全局设置超时时间public setTimeout(timeout: number) {this.timeout = timeout;}//小程序发送请求public async request(options: HttpOptions) {options.url = this.baseUrl + options.url;return this.completeRequest(options);}//小程序上传文件public async uploadFile(options: HttpOptions) {const { url, headers = { 'Content-Type': 'multipart/form-data' }, data } = options;return new Promise((resolve, reject) => {uni.uploadFile({url: this.baseUrl + url,header: headers,files: data,success: (res) => {resolve(res.data)},fail: (err) => {reject(err)}})})}//完整路经的请求public async completeRequest(options: HttpOptions) {const { url, method = 'GET', headers = { 'Content-Type': 'application/json' }, data } = options;return new Promise((resolve, reject) => {uni.request({url: url,timeout: this.timeout,method: method as 'GET' | 'POST',header: headers,data: data,success: (res) => {resolve(res.data)},fail: (err) => {reject(err)}})})}
}//导出实例和类
export default new Http();export { Http };

使用方法

步骤一:在main文件中全局依赖注入
import { createSSRApp } from "vue";
import App from "./App.vue";
//导入加载页面组件
import loading from "./component/loading.vue";
import drawer from "./component/drawer.vue";
import wxShare from "./util/wxShare";
//导入HTTP请求
import http from "./util/http";
export function createApp() {const app = createSSRApp(App);app.component("qgy-loading", loading);app.component("qgy-drawer", drawer);app.mixin(wxShare);//全局挂载httpapp.provide("$http", http);return {app,};
}
步骤二:在组件中导入
import { inject, onMounted } from 'vue'
import { Http } from '@/util/http';const http:Http|undefined = inject('$http');
步骤三:设置全局配置
//设置全局配置
http.setBaseUrl("http://localhost:8088/")
http.setTimeout(60 * 1000)
步骤四:调用方法
  1. request():正常发送请求

  2. uploadFile():上传文件

  3. completeRequest():可以配置完整url的路径发送请求

相关文章:

微信小程序的请求函数封装(ts版本,uniapp开发)

主要封装函数代码: interface HttpOptions {url: string;method?: string;headers?: { [key: string]: string };data?: any; }class Http {private timeout: number;private baseUrl: string;public constructor() { this.timeout 60 * 1000;this.baseUrl ht…...

Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件

步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install, 允许打开Visual Studio Code。 步骤3 共有4项,一齐安装。 步骤4 在WSL Linux(Ubuntu)中&#xf…...

openAI最新o1模型 推理能力上表现出色 准确性方面提升 API如何接入?

OpenAI o1模型在回答问题前会进行深入思考,并生成一条内部推理链,使其在尝试解决问题时可以识别并纠正错误,将复杂的步骤分解为更简单的部分,并在当前方法无效时尝试不同的途径。据悉,o1不仅数学水平与美国奥林匹克竞赛…...

GC 基础入门

什么是GC(Garbage Collection)? 内存管理方式通常分为两种: 手动内存管理(Manual Memory Management)自动内存管理(Garbage Collection, GC) 手动内存管理 手动内存管理是指开发…...

Go语言协程Goroutine高级用法(一)

什么协程 在Go语言中,协程就是一种轻量的线程,是并发编程的单元,由Go来管理,所以在GO层面的协程会更加的轻量、高效、开销更小,并且更容易实现并发编程。 轻量级线程 Go语言中协程(线程)与传…...

DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1 DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件 1.1 背景 AI能力再强,如果不能在企业的自有业务上产生助益,那基本也是一无是处。将企业的自有业务上传到线上训练,那是脑子进水的做法&#xff…...

【鸿蒙HarmonyOS Next实战开发】lottie动画库

简介 lottie是一个适用于OpenHarmony和HarmonyOS的动画库,它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画,并在移动设备上进行本地渲染。 下载安裝 ohpm install ohos/lottieOpenHarmony ohpm 环境配置等更多内容&#xff0c…...

PAT乙级真题 — 1084 外观数列(java)

外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ...它从不等于 1 的数字 d 开始,序列的第 n1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对…...

从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地

导读:日志数据已成为企业洞察系统状态、监控网络安全及分析业务动态的宝贵资源。网易云音乐引入 Apache Doris 作为日志库新方案,替换了 ClickHouse。解决了 ClickHouse 运维复杂、不支持倒排索引的问题。目前已经稳定运行 3 个季度,规模达到…...

STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)

本实验,我们以中断的方式使得串口发送数据控制LED的闪烁速度,发送1,慢闪;发送2,速度正常;发送3,快闪。 一、电路连接图 二、实现思路&CubeMx配置 1、实现控制LED的闪烁速度 uint32_t bli…...

清影2.0(AI视频生成)技术浅析(二):自然语言处理

清影2.0(AI视频生成)中的自然语言处理(NLP)技术是其核心组件之一,负责将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指导后续的视频生成过程。 一、基本原理 1. 目标 清影2.0的NLP技术旨在将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指…...

Unity序列化多态数组

文档 Json序列化 脚本序列化 问题 Unity序列化数组时,只能存储基类内容,子类内容缺少。 Unity版本 2019.4.40 原因:Unity序列化不支持多态 测试类 将testarray类序列化时,多态列表personlist只转换了基类数据,子类…...

Spring Framework 中文官方文档

spring的部分中文文档。给总结在下面了: 看英文的大佬可以绕路了哈哈哈 一、 历史、设计理念、反馈、入门。 二、 IoC 容器、事件、资源、i18n、验证、数据绑定、类型转换、SpEL、AOP 三、 模拟对象、TestContext 框架、Spring MVC 测试、WebTestClient。 四、 事…...

力扣-二叉树-257 二叉树的所有路径

思路 除去根节点&#xff0c;每一层添加->val&#xff0c;然后使用前序遍历的顺序 代码 class Solution { public:vector<string> res;void getTreePaths(string s, TreeNode* root){s "->";s to_string(root->val);if(root->left nullptr &…...

如何调整 Nginx工作进程数以提升性能

&#x1f3e1;作者主页&#xff1a;点击&#xff01; Nginx-从零开始的服务器之旅专栏&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年2月15日14点20分 Nginx 的工作进程数&#xff0…...

FreeRTOS-rust食用指南

Rust 环境安装 rustup 是 Rust 的安装程序&#xff0c;也是它的版本管理程序&#xff0c;Linux 命令行下使用如下方式安装 # 安装 rustup curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh #更新 rustup rustup update# 版本检查 rustc -V cargo -VFreeRTOS-rust…...

如何使用智能化RFID管控系统,对涉密物品进行安全有效的管理?

载体主要包括纸质文件、笔记本电脑、优盘、光盘、移动硬盘、打印机、复印机、录音设备等&#xff0c;载体&#xff08;特别是涉密载体&#xff09;是各保密、机要单位保证涉密信息安全、防止涉密信息泄露的重要信息载体。载体管控系统主要采用RFID射频识别及物联网技术&#xf…...

0基础学LabVIEW

对于零基础的朋友来说&#xff0c;学习LabVIEW需要一个科学的学习路径和方法。通过观看优质的B站教程打好基础&#xff0c;再结合实际项目进行实践操作&#xff0c;能够快速提升LabVIEW的应用能力。以下是从入门到进阶的学习建议。 ​ 一、利用B站入门教程打基础 筛选优质教程…...

Go语言精进之路读书笔记(第二部分-项目结构、代码风格与标识符命名)

说明&#xff1a;《Go语言精进之路》第一部分-熟知Go语言的一切&#xff0c;不在博客中做读书笔记了&#xff0c;大家可以自己读一读&#xff0c;每个人心里都会有自己对Go语言的认识和理解。 直接从第二部分-项目接口、代码风格与标识符命名开始 第二章目录如下 第5条 使用…...

Windows server 2016 无法部署docker问题

根据流程winserver16安装docker ee&#xff0c;发现服务器管理器的添加角色和功能-功能中没有 container 根据流程winserver16安装docker desktop&#xff0c;发现安装 hyper-v 报错 原因&#xff1a; 本人测试用windows server 2016使用vmware搭建&#xff0c;而vmware本身可…...

OpenPicoRTOS:ARM Cortex-M微控制器上的极简实时操作系统设计与实战

1. 项目概述&#xff1a;一个为微控制器而生的实时操作系统如果你在嵌入式领域摸爬滚打过几年&#xff0c;尤其是在资源极其受限的微控制器&#xff08;MCU&#xff09;上开发过复杂应用&#xff0c;那你一定对“实时性”和“资源占用”这对矛盾深有体会。商业RTOS&#xff08;…...

NeoGPT实战:基于RAG构建本地私有知识库问答系统

1. 项目概述&#xff1a;当本地大模型遇上你的个人知识库最近在折腾本地大模型应用的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;如何让这些动辄几十亿参数的“大聪明”真正理解并回答你私有的、特定领域的问题&#xff1f;比如&#xff0c;你想让它帮你分析公司内部…...

用Zig重写LLM推理引擎:性能提升20%的底层优化实践

1. 项目概述&#xff1a;为什么用Zig重写一个LLM推理引擎&#xff1f; 如果你关注过小型语言模型&#xff08;LLM&#xff09;的部署和推理&#xff0c;大概率听说过 Andrej Karpathy 的 llama2.c 。这个项目用纯C语言实现了Meta的Llama 2模型推理&#xff0c;以其极致的简洁…...

神经渲染显式表示:从3DGS到产业落地,一篇讲透核心与未来

神经渲染显式表示&#xff1a;从3DGS到产业落地&#xff0c;一篇讲透核心与未来 引言 在神经渲染技术席卷计算机视觉与图形学领域之际&#xff0c;以NeRF为代表的隐式表示曾独占鳌头。然而&#xff0c;显式表示正凭借其高渲染效率和强大可编辑性强势回归&#xff0c;特别是3D…...

Godot游戏后端自托管方案:Talo插件核心功能与部署实战

1. 项目概述&#xff1a;Talo插件能为你的Godot游戏带来什么&#xff1f;如果你正在用Godot引擎开发游戏&#xff0c;并且为如何实现玩家数据持久化、排行榜、实时社交功能或者数据分析而头疼&#xff0c;那么Talo这个插件很可能就是你一直在找的“瑞士军刀”。简单来说&#x…...

人工智能、机器学习、深度学习及神经网络基础

第一部分&#xff1a;课程导入&#xff08;2分钟&#xff09;我们用45分钟从零入门&#xff0c;彻底搞懂人工智能、机器学习、深度学习到底是什么、有什么区别&#xff0c;同时了解现在AI都用在哪些地方、开发AI常用什么工具&#xff0c;最后弄懂所有AI技术最底层的核心原理——…...

从零搭建静态网站:Hugo + GitHub Pages 实战指南

1. 项目概述&#xff1a;从零构建一个静态个人网站 最近在整理自己的技术项目和博客文章&#xff0c;发现内容散落在各个平台&#xff0c;查阅和管理起来非常不便。于是&#xff0c;我决定动手搭建一个属于自己的静态网站&#xff0c;将所有内容集中展示。最终&#xff0c;我选…...

ScaleLLM:基于向量化与编译技术的大模型推理引擎部署与优化指南

1. 项目概述&#xff1a;当大模型遇见“向量化”引擎最近在折腾大语言模型&#xff08;LLM&#xff09;推理部署的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;吞吐量。无论是想用开源模型搭建一个对内的知识库问答系统&#xff0c;还是想对外提供稳定的API服务&…...

四十三、网络编程(下)——TCP 编程与 HTTP 入门

&#x1f62b; 痛点引入&#xff1a;UDP 发出去就不管了&#xff0c;万一丢包怎么办&#xff1f;文件上传必须每字节都不能少&#xff01; TCP 协议应运而生——面向连接、可靠传输、三次握手确认&#xff01;☎️ 下篇手写 TCP 客户端-服务端、文件上传、多线程并发服务器&…...

别再让Excel导入报错!用EasyExcel+自定义监听器搞定6种数据校验(附完整代码)

用EasyExcel构建企业级Excel导入校验体系的实战指南 每次运营人员上传Excel表格时&#xff0c;后台服务就像在拆盲盒——你永远不知道会收到格式混乱的数据、缺失的字段还是重复的记录。传统的数据校验方式往往在全部读取完成后才进行验证&#xff0c;这不仅浪费服务器资源&…...