当前位置: 首页 > 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的路径发送请求

http://www.lryc.cn/news/537386.html

相关文章:

  • Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件
  • openAI最新o1模型 推理能力上表现出色 准确性方面提升 API如何接入?
  • GC 基础入门
  • Go语言协程Goroutine高级用法(一)
  • DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件
  • 【鸿蒙HarmonyOS Next实战开发】lottie动画库
  • PAT乙级真题 — 1084 外观数列(java)
  • 从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
  • STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)
  • 清影2.0(AI视频生成)技术浅析(二):自然语言处理
  • Unity序列化多态数组
  • Spring Framework 中文官方文档
  • 力扣-二叉树-257 二叉树的所有路径
  • 如何调整 Nginx工作进程数以提升性能
  • FreeRTOS-rust食用指南
  • 如何使用智能化RFID管控系统,对涉密物品进行安全有效的管理?
  • 0基础学LabVIEW
  • Go语言精进之路读书笔记(第二部分-项目结构、代码风格与标识符命名)
  • Windows server 2016 无法部署docker问题
  • 智能AI之隐私安全,尤其是医疗
  • 【hot100】054螺旋矩阵
  • 【Java学习】类和对象
  • TestHubo基础教程-创建项目
  • JS 链表
  • 数据结构(陈越,何钦铭)第三讲 树(上)
  • 企业文件安全:零信任架构下的文件访问控制
  • 性格测评小程序06用户注册校验
  • $符(前端)
  • Windows 11如何显示全部右键菜单?
  • 离线量化算法和工具 --学习记录1