更新记录
0.1.9(2020-07-14)
feat: update
0.1.8(2020-07-10)
fix: 修复 utils getDownloadUrl getPreviewUrl
0.1.7(2020-07-08)
fix: 修复上传
查看更多平台兼容性
Rongzer Libs
Api
request(config)
config 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 | 平台差异说明 |
---|---|---|---|---|---|
url | String | 是 | 开发者服务器接口地址 | ||
data | Object/String/ArrayBuffer | 否 | 请求的参数 | App(自定义组件编译模式)不支持ArrayBuffer类型 | |
header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。 | H5端会自动带上cookie不可手动覆盖 | |
method | String | 否 | GET | 有效值详见下方说明 | |
timeout | Number | 否 | 30000 | 超时时间,单位 ms | 微信小程序(2.10.0)、支付宝小程序 |
dataType | String | 否 | json | 如果设为 json,会尝试对返回的数据做一次 JSON.parse | |
responseType | String | 否 | text | 设置响应的数据类型。合法值:text、arraybuffer | App和支付宝小程序不支持 |
sslVerify | Boolean | 否 | true | 验证 ssl 证书 | 仅App安卓端支持(HBuilderX 2.3.3+) |
withCredentials | Boolean | 否 | false | 跨域请求时是否携带凭证(cookies) | 仅H5支持(HBuilderX 2.6.15+) |
files | Array | 否 | 需要上传的文件列表。使用 files 时,filePath 和 name 不生效。 | App、H5( 2.6.15+) | |
fileType | String | 见平台差异说明 | 文件类型,image/video/audio | 仅支付宝小程序,且必填。 | |
file | File | 否 | 要上传的文件对象。 | 仅H5(2.6.15+)支持 | |
filePath | String | 是 | 要上传文件资源的路径。 | ||
name | String | 是 | 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 | ||
formData | Object | 否 | HTTP 请求中其他额外的 form data |
注意:
- App支持多文件上传,微信小程序只支持单文件上传,传多个文件需要反复调用本API。所以跨端的写法就是循环调用本API。
- hello uni-app中的客服反馈,支持多图上传。uni-app插件市场中也有多个封装的组件。
- App平台选择和上传非图像、视频文件,参考https://ask.dcloud.net.cn/article/35547
- 网络请求的 超时时间 可以统一在 manifest.json 中配置 networkTimeout。
method 有效值
method | App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节跳动小程序 |
---|---|---|---|---|---|---|
GET | √ | √ | √ | √ | √ | √ |
POST | √ | √ | √ | √ | √ | √ |
PUT | √ | √ | √ | x | √ | √ |
DELETE | √ | √ | √ | x | √ | x |
CONNECT | √ | √ | √ | x | x | x |
HEAD | √ | √ | √ | x | √ | x |
OPTIONS | √ | √ | √ | x | √ | x |
TRACE | √ | √ | √ | x | x | x |
DOWNLOAD | √ | √ | √ | √ | √ | √ |
UPLOAD | √ | √ | √ | √ | √ | √ |
data 数据说明
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。转换规则如下:
- 对于 GET 方法,会将数据转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18。
- 对于 POST 方法且 header['content-type'] 为 application/json 的数据,会进行 JSON 序列化。
- 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据,会将数据转换为 query string。
files参数说明
files 参数是一个 file 对象的数组,file 对象的结构如下:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
name | String | 否 | multipart 提交时,表单的项目名,默认为 file |
file | File | 否 | 要上传的文件对象,仅H5(2.6.15+)支持 |
uri | String | 是 | 文件的本地地址 |
返回值为Promise
参数 | 类型 | 说明 |
---|---|---|
data | Object/String/ArrayBuffer | 开发者服务器返回的数据 |
statusCode | Number | 开发者服务器返回的 HTTP 状态码 |
header | Object | 开发者服务器返回的 HTTP Response Header |
interceptors
request.interceptors.request.use(config => config)
request.interceptors.response.use(res => res, err => Promise.reject(err))
methods
- request.get(url, config)
- request.post(url, config)
- request.put(url, config)
- request.delete(url, config)
- request.connect(url, config)
- request.head(url, config)
- request.options(url, config)
- request.trace(url, config)
- request.uploadFile(url, config)
- request.downloadFile(url, config)
examples
request.get(url, {
data: {
foo: 'bar',
}
})