uni-app adapter
UniAppRequestOptions 与 UniAppUploadFile
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 method | uni API | 平台请求 method |
|---|---|---|
upload | uni.uploadFile | POST |
download | uni.downloadFile | GET |
| 其他 method | uni.request | 原 HTTP method |
完整平台字段、进度、取消和响应行为见 uni-app Adapter 文档。
axios.upload() 上传
ts
upload<T, R, D>(url, data?, config?): Promise<R>固定写入 method: "upload"。data 用作普通 multipart 表单字段;filePath、name、files 等文件选项通过 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 });输入
该方法没有输入参数。
返回
| 返回值 | 返回值类型 | 返回值说明 |
|---|---|---|
result | AxiosAdapter | 可赋给 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" });输入
| 输入值 | 输入值类型 | 必填/默认值 | 输入值说明 |
|---|---|---|---|
url | string | 是 | 上传地址。 |
data | D | 否 | 普通 multipart 表单字段。 |
config | AxiosRequestConfig<D> | 否 | filePath、name、files 及其他 Axios 配置。 |
返回
| 返回值 | 返回值类型 | 返回值说明 |
|---|---|---|
result | Promise<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);输入
| 输入值 | 输入值类型 | 必填/默认值 | 输入值说明 |
|---|---|---|---|
url | string | 是 | 下载地址。 |
config | AxiosRequestConfig<D> | 否 | Axios 与 uni-app 平台请求选项。 |
返回
| 返回值 | 返回值类型 | 返回值说明 |
|---|---|---|
result | Promise<R> | Data 为临时文件路径的 AxiosResponse。 |
