Skip to content

Http请求

TuiPlus 3.0 已支持泛型响应

轻量级http请求工具,支持postgetputdelete四种基本请求方式。它不追求功能的全面覆盖,而是致力于简约高效,针对用户实际需求进行优化。我们的目标是让插件轻巧易用,让用户在第一时间享受到便捷的体验,真正实现一键启动,快速上手。

支持平台

安卓iosweb微信小程序

创建 axios.uts(请求和响应拦截处理)

js
import config from '../config/config.uts'
import { TuiStore, TuiAxios } from '@/uni_modules/tui-plus'
const store : UTSJSONObject = new TuiStore().value
const reqIns = new TuiAxios({
	baseURL: config.baseUrl,
	timeout: 6000,
	header: {
		appid: config.appSelect
	}
})

//请求拦截处理
reqIns.requestInterceptor = (config : Map<string, any>) => {
	const token = store.token ?? ''
	const header = config.get('header') as UTSJSONObject
	header.set('token', token)
	config.set('header', header)
}

//响应拦截处理
reqIns.responseInterceptor = (res : UTSJSONObject, resolve : (res : UTSJSONObject) => void, reject : (err : UniError) => void) => {
	if (typeof (res.data) == 'string') {
		resolve({ data: res.data })
		return
	}
	const resp : UTSJSONObject = res.data as UTSJSONObject
	const code : Number = resp.getNumber('code') as number
	const method = res.getString('config.method')
	if (method == 'upload') {
		resolve(resp)
		return
	}
	if (code == 0) {
		resolve(resp)
	} else {
		const message : string = `${resp.getString('message')}`
		let error = new UniError("responseInterceptor", code, message);
		error.data = resp
		reject(error)
	}
}

export default reqIns

使用方法

接口统一管理

js

import axios from '../../axios/axios.uts'
import { WorTaskResponse } from './interface'

/**
 * 获取工作任务的接口
 * @param {Object} data - 请求参数,用于传递查询条件或其他数据
 * @param {boolean} [cache=false] - 是否使用缓存,默认为 false,表示不使用缓存
 * @returns {Promise<WorTaskResponse>} - 返回一个 Promise,解析为包含工作任务信息的响应对象
 */
export function getWorTask(data: any = {}, cache: boolean = false): Promise<WorTaskResponse> {
    return axios.post<WorTaskResponse>('getWorTask', data, { cache })
}

在页面中使用

js
	import { getWorTask, WorTaskList, WorTaskType, WorTaskResponse } from '@/api'
	
	getWorTask({
		current: current.value,
		pageSize: pageSize.value,
		name: '',
		step: `${curNow.value}`
	}).then((res : WorTaskResponse) => {
		
	}).catch((err : any | null) => {
		uni.hideLoading()
		loading = false
		reject(err)
	})