Pure Http
Pure Request 对 uni.request 和 uni.upload 进行了封装,提供了更丰富的配置。
参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
baseURL | String | "" | 基础 URL |
url | String | "" | 请求 URL |
data | Object | {} | 请求数据 |
method | String | "GET" | 详情 请求方法 |
header | Object | {} | 请求头 |
timeout | Number | 30000 | 请求超时时间,单位毫秒 |
dataType | String | "json" | 响应数据类型,可选值为 "json"、"text"、"arraybuffer" |
responseType | String | "text" | 响应数据类型,可选值为 "text"、"arraybuffer" |
sslVerify | Boolean | true | 是否验证 ssl 证书? |
withCredentials | Boolean | false | 跨域请求时是否携带凭证(cookies)? |
firstIpv4 | Boolean | false | DNS 解析时是否优先使用 ipv4? |
enableHttp2 | Boolean | false | 是否开启 http2? |
enableQuic | Boolean | false | 是否开启 quic? |
enableCache | Boolean | false | 是否开启 cache? |
enableHttpDNS | Boolean | false | 是否开启 HttpDNS 服务? |
httpDNSServiceId | String | "" | HttpDNS 服务商 Id |
enableChunked | Boolean | false | 是否开启 transfer-encoding chunked? |
forceCellularNetwork | Boolean | false | 是否在 wifi 下使用移动网络发送请求? |
enableCookie | Boolean | false | 开启后可在 headers 中编辑 cookie |
cloudCache | Boolean | false | 是否开启云加速? |
defer | Boolean | false | 控制当前请求是否延时至首屏内容渲染后发送 |
files | Array | [] | 要上传的文件列表 |
fileType | String | "image" | 文件类型,image/video/audio |
file | Object | null | 要上传的文件对象 |
filePath | String | null | 要上传文件资源的路径 |
name | String | "file" | 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 |
formData | Object | {} | HTTP 请求中其他额外的 form data |
successStatusCode | [Number, Array, Object] | 200 | 详情 表示请求状态成功的状态码 |
successDataCode | [Number, Array, Object] | 0 | 详情 表示数据正常的状态码 |
before | Function | null | 详情 请求前的处理函数 |
after | Function | null | 详情 响应后的处理函数 |
loading | Boolean | true | 是否显示 loading |
loadingDelay | Number | 800 | 请求超过此值设置的毫秒数后才会显示,设置为 0 会在请求后立即显示 |
loadingTips | String | "" | 提示内容 |
loadingMask | Boolean | true | 是否显示透明蒙层,防止触摸穿透 |
error | Boolean | true | 是否显示错误提示 |
errorTips | String | "" | 错误提示内容 |
errorMask | Boolean | true | 是否显示透明蒙层,防止触摸穿透 |
success | Boolean | false | 是否显示成功提示 |
successTips | String | "" | 成功提示内容 |
successMask | Boolean | true | 是否显示透明蒙层,防止触摸穿透 |
请求方法
支持的请求方法有:GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT、UPLOAD。
请求状态码
successStatusCode 表示请求状态成功的状态码,可以是数字,数组或对象,默认值为 200。
数字
如果 successStatusCode 是数字,那么只有当响应状态码与 successStatusCode 相等时,才会认为请求成功。
数组
如果 successStatusCode 是数组,那么只有当响应状态码在 successStatusCode 数组中时,才会认为请求成功。
对象
如果 successStatusCode 是对象,对象中的 start 和 end 分别表示成功状态码开始和结束的值。
示例
js
// 状态码 >= 200 && 状态码 < 300,注意:不包含 300,时表示请求成功
successStatusCode: {
start: 200,
end: 300,
},数据状态码
successDataCode 表示数据状态成功的状态码,可以是数字,数组或对象,默认值为 0。
数字
如果 successDataCode 是数字,那么只有当响应数据中的状态码与 successDataCode 相等时,才会认为数据正常。
数组
如果 successDataCode 是数组,那么只有当响应数据中的状态码在 successDataCode 数组中时,才会认为数据正常。
对象
如果 successDataCode 是对象,对象中的 start 和 end 分别表示数据状态码开始和结束的值。
示例
js
// 数据状态码 >= 0 && 数据状态码 < 100,注意:不包含 100,时表示数据正常
successDataCode: {
start: 0,
end: 100,
},请求前的处理函数
before 表示请求前的处理函数,默认值为 null。
示例
js
// config - 本次请求的配置数据
before: (config) => {
// 可以在请求前对 config 进行处理
// 返回值
// 如果返回 null 则表示拦截请求,否则请求继续
},响应后的处理函数
after 表示响应后的处理函数,默认值为 null。
示例
js
// response - 本次请求的响应数据,其中 response.config 为本次请求的配置数据
after: (response) => {
// 可以在响应后对 response 进行处理
// ...
// 本次请求的配置
const config = response.config;
// 返回值
// 返回 null 表示让 Pure-Request 继续处理
// 否则,本次请求返回该函数的返回值
},
