Skip to content

uni-app adapter

UniAppRequestOptionsUniAppUploadFile

UniAppRequestOptions 会合并到 AxiosRequestConfig,声明 adapter 实际透传的 SSL、HTTP/2、QUIC、HttpDNS、Cookie、缓存、重定向、上传文件和多文件等平台字段;UniAppUploadFile 描述 files 中的单个文件。

这些公开声明不依赖 uni-app 全局类型。uni-app 应用如果还需要完整的 uni API 声明,应在应用项目安装 @dcloudio/types

createUniAppAxiosAdapter() 创建

返回 AxiosAdapter,并在当前 Axios 包的原型上安装一次文件便捷方法:

ts
const http = axios.create({
	adapter: createUniAppAxiosAdapter(),
});

分流规则:

Axios methoduni API平台请求 method
uploaduni.uploadFilePOST
downloaduni.downloadFileGET
其他 methoduni.request原 HTTP method

完整平台字段、进度、取消和响应行为见 uni-app Adapter 文档

axios.upload() 上传

ts
upload<T, R, D>(url, data?, config?): Promise<R>

固定写入 method: "upload"data 用作普通 multipart 表单字段;filePathnamefiles 等文件选项通过 config 提供。

axios.download() 下载

ts
download<T, R, D>(url, config?): Promise<R>

固定写入 method: "download"。成功时 response.data 为 uni-app 返回的临时文件路径。

createUniAppAxiosAdapter 创建

创建把 Axios 请求分发给 uni.request、uploadFile 或 downloadFile 的 Adapter。

签名

ts
createUniAppAxiosAdapter(): AxiosAdapter;

示例

ts
import axios from "axios";
import { createUniAppAxiosAdapter } from "@fast-china/axios";

const result = createUniAppAxiosAdapter();
const http = axios.create({ adapter: result });

输入

该方法没有输入参数。

返回

返回值返回值类型返回值说明
resultAxiosAdapter可赋给 Axios adapter 的函数。

axios.upload 上传

通过首次创建 uni-app Adapter 安装的 Axios 扩展方法上传文件。

签名

ts
upload<T, R, D>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;

示例

ts
import axios from "axios";
import { createUniAppAxiosAdapter } from "@fast-china/axios";

const http = axios.create({ adapter: createUniAppAxiosAdapter() });
const tempPath = "/tmp/avatar.png";
const result = await http.upload("/files", { category: "avatar" }, { filePath: tempPath, name: "file" });

输入

输入值输入值类型必填/默认值输入值说明
urlstring上传地址。
dataD普通 multipart 表单字段。
configAxiosRequestConfig<D>filePath、name、files 及其他 Axios 配置。

返回

返回值返回值类型返回值说明
resultPromise<R>uni.uploadFile 结果转换后的 AxiosResponse。

axios.download 下载

通过首次创建 uni-app Adapter 安装的 Axios 扩展方法下载文件。

签名

ts
download<T, R, D>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;

示例

ts
import axios from "axios";
import { createUniAppAxiosAdapter } from "@fast-china/axios";

const http = axios.create({ adapter: createUniAppAxiosAdapter() });
const result = await http.download("/reports/1");
console.log(result.data);

输入

输入值输入值类型必填/默认值输入值说明
urlstring下载地址。
configAxiosRequestConfig<D>Axios 与 uni-app 平台请求选项。

返回

返回值返回值类型返回值说明
resultPromise<R>Data 为临时文件路径的 AxiosResponse。