uni.request(param)
发起网络请求。
request 兼容性
Web | Android | iOS |
4.0 | 3.9 | 4.11 |
参数
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
param | RequestOptions<T> | 是 | - | - | 网络请求参数 |
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 | url | string | 是 | - |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 开发者服务器接口地址
| data | any | 否 | null |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 请求的参数 在app-android端,参数类型只能为 UTSJSONObject或者 string`类型 | header | UTSJSONObject | 否 | null |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 设置请求的 header,header 中不能设置 Referer | method | string | 否 | "GET" |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 请求方法 | 合法值 | 兼容性 | 描述 | GET | - | GET方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。 | POST | - | POST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。 | PUT | - | PUT方法用有效载荷请求替换目标资源的所有当前表示。 | PATCH | - | PATCH方法用于对资源应用部分修改。 | DELETE | - | DELETE方法删除指定的资源。 | HEAD | - | HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体。 | OPTIONS | - | OPTIONS 方法用于描述目标资源的通信选项。 |
| timeout | number | 否 | 60000 | | 超时时间,单位 ms | withCredentials | boolean | 否 | - | | 跨域请求时是否携带凭证(cookies)
| firstIpv4 | boolean | 否 | false | | DNS解析时优先使用ipv4 | success | (option: RequestSuccess<T>) => void | 否 | null | - | 网络请求成功回调。 | fail | (option: RequestFail) => void | 否 | null | - | 网络请求失败回调。 | complete | (option: any) => void | 否 | null | - | 网络请求完成回调,成功或者失败都会调用。 |
|
RequestSuccess<T> 的属性值
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
data | T | 否 | - |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 开发者服务器返回的数据 |
statusCode | number | 是 | - |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 开发者服务器返回的 HTTP 状态码 |
header | any | 是 | - |
Web
|
Android
|
iOS
| 4.0 | 3.9 | 4.11 |
| 开发者服务器返回的 HTTP Response Header |
cookies | Array<string> | 是 | - | | 开发者服务器返回的 cookies,格式为字符串数组 |
RequestFail 的属性值
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
errCode | number | 是 | - | - | 错误码 |
合法值 | 兼容性 | 描述 | 5 | - | 接口超时 | 1000 | - | 服务端系统错误 | 100001 | - | json数据解析错误 | 100002 | - | 错误信息json解析失败 | 600003 | - | 网络中断 | 600008 | - | data参数类型不合法 | 600009 | - | URL格式不合法 | 602001 | - | request系统错误 |
|
errSubject | string | 是 | - | - | 统一错误主题(模块)名称 |
data | any | 否 | - | - | 错误信息中包含的数据 |
cause | Error | 否 | - | - | 源错误信息,可以包含多个错误,详见SourceError |
errMsg | string | 是 | - | - | - |
返回值
RequestTask 的方法
abort(): void
中断网络请求。
abort 兼容性
Web | Android | iOS |
4.0 | 3.9 | 4.11 |
注意事项
- 在4.25版本iOS平台增加了Task原生对象自动销毁的逻辑,即网络请求完成后自动释放原生的Task对象,建议开发者在
complete
回调中置空Task对象,例
如不释放,在调用Task对象的方法将导致控制台报错:
error: instance object does not exist: id:15
参见
示例
hello uni-app x
cookie管理
- uni-app x 4.0+,app-android平台的
uni.request
、uni.uploadFile
、uni.downloadFile
,之间支持共享cookie Cookie共享介绍。
注意事项
- 推荐使用成熟的网络拦截器插件,见插件市场
- app-android平台 request 接口如需包装和传递泛型,需参考泛型传递丢失注意。成熟的拦截器插件均已自动处理这些问题。
- 如果使用泛型先创建RequestOptions实例,再传入uni.request(),此时请务必确保request要显式指定泛型,例:
- app-android、app-ios平台 uni.request()暂未支持Promise,返回值是RequestTask。
- web平台 request接口在 4.01版本之前返回数据是一个普通对象,4.01起调整为UTSJSONObject类型
- web平台 request接口目前不支持创建传入的泛型的实例
由于uni-app x的强类型,导致联网相关开发有一些不同,请不熟悉强类型的开发者务必阅读教程:uni-app x的联网教程
通用类型
GeneralCallbackResult
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
errMsg | string | 是 | - | - | 错误信息 |