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

vue3基于uni-app 封装小程序request请求

const BASE_URL = 'https://47.122.26.142'; // 替换为你的 API 基础 URL
const token = uni.getStorageSync('token');const request = (url: string, method: any, data = {}, headers = {}) => {return new Promise((resolve, reject) => {uni.request({url: `${BASE_URL}${url}`,method,data,//请求头参数自定义header: {...headers, 'X-Token' : String(token)},timeout: 10000,success: (response) => {if (response.statusCode === 200) {resolve(response.data);} else {handleError(response);reject(response);}},fail: (error) => {uni.showToast({ title: '网络错误', icon: 'none' });reject(error);},});});
};const handleError = (response: UniApp.RequestSuccessCallbackResult) => {switch (response.statusCode) {case 401:uni.showToast({ title: '请先登录', icon: 'none' });// 跳转到登录页的逻辑break;case 404:uni.showToast({ title: '资源未找到', icon: 'none' });break;default:uni.showToast({ title: '请求错误', icon: 'none' });break;}
};const http = {get(url: string, params = {}, headers = {}) {console.log('请求参数', headers);return request(url, 'GET', params, headers);},post(url: any, data = {}, headers = {}) {return request(url, 'POST', data, headers);},put(url: any, data = {}, headers = {}) {return request(url, 'PUT', data, headers);},delete(url: any, data = {}, headers = {}) {return request(url, 'DELETE', data, headers);},
};export default http;

使用新建interface.ts

import http from '@/utils/request'
const application = "application/json;charset=UTF-8";
const formData = "multipart/form-data";
const plain = "application/json, text/plain, */*";const {post, get, put} = http// Content-Type 根据实际接口选择
export const apiGetMyNotice = (data: any) => {return get(`/api/workflowProcess/getMyNotice`, data, {"Content-Type":application});
};

在页面使用同常规一样

<script setup lang="ts">
import { apiGetMyNotice } from "@/apis/interface";
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
import { computed, onMounted, reactive } from "vue";onMounted(() => {onApiGetMyNotice();
});
const onApiGetMyNotice = async () => {try {const response = await apiGetMyNotice({});console.log(response);} catch (error) {console.error(error);}
};
</script>

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

相关文章:

  • YOLO在目标检测与视频轨迹追踪中的应用
  • 版本控制系统:Git 纯应用(持续更新)
  • 从0开始搭建vue项目
  • Java框架常见面试题
  • linux c 应用编程定时器函数
  • 设备调试上位机GUI
  • 项目管理系统厂商:奥博思发布《项目管理系统助力 IPD 高效落地》演讲
  • Java项目总结1
  • Java中的类加载机制详解
  • SwiftUI 中 Grid 内多个 NavigationLink 同时发生导航之诡异问题的解决
  • 51单片机第21步_将TIM0用作两个8位定时器同时将TIM1用作波特率发生器
  • API-元素尺寸与位置
  • C语言中的基础指针操作
  • LabVIEW环境下OCR文字识别的实现策略与挑战解析
  • 中英双语介绍美国的州:堪萨斯州(Kansas)
  • 信息收集---端口服务信息收集
  • Python知识点背诵手册,超详细知识梳理
  • 【Pytorch实用教程】如何在多个GPU上使用分布式数据并行进行训练模型
  • PIL,OpenCV,Pytorch处理图像时的通道顺序(颜色,长宽深)
  • 经纬恒润亮相2024世界智能产业博览会
  • Python序列化和反序列化
  • Stream toArray 好过collect
  • qt/c++/mysql教务管理系统
  • Echarts公共方法
  • 鸿蒙学习(二)
  • 企业机构营销目前106短信群发还有用吗?此文告诉你该如何抉择!
  • DJYGUI AI低代码图形编程开发平台:开启嵌入式软件图形编程新纪元
  • 为什么不能在foreach中删除元素
  • python学习-tuple及str
  • Python深度理解系列之【排序算法——冒泡排序】