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 继续处理
// 否则,本次请求返回该函数的返回值
},