# RequestTask tap.request(Object object)
以 Promise 风格调用:不支持
相关文档: 网络使用说明、局域网通信、移动解析HttpDNS
# 功能描述
发起 HTTPS 网络请求。
# 参数
# Object object
属性 | 类型 | 默认值 | 必填 | 说明 | ||||||||||||||||||||
url | string | 是 | 开发者服务器接口地址 | |||||||||||||||||||||
data | string/object/ArrayBuffer | 否 | 请求的参数 | |||||||||||||||||||||
header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。content-type 默认为 application/json | |||||||||||||||||||||
timeout | number | 否 | 超时时间,单位为毫秒。默认值为 60000 | |||||||||||||||||||||
method | string | GET | 否 | HTTP 请求方法 | ||||||||||||||||||||
| ||||||||||||||||||||||||
dataType | string | json | 否 | 返回的数据格式 | ||||||||||||||||||||
| ||||||||||||||||||||||||
responseType | string | text | 否 | 响应的数据类型 | ||||||||||||||||||||
| ||||||||||||||||||||||||
useHighPerformanceMode | boolean | false | 否 | 使用高性能模式,暂仅支持 Android,默认关闭。该模式下有更优的网络性能表现,更多信息请查看下方说明。 | ||||||||||||||||||||
enableHttp2 | boolean | false | 否 | 开启 http2 | ||||||||||||||||||||
enableProfile | boolean | true | 否 | 是否开启 profile,默认开启。开启后可在接口回调的 res.profile 中查看性能调试信息。 | ||||||||||||||||||||
enableQuic | boolean | false | 否 | 开启 Quic 协议(gQUIC Q43) | ||||||||||||||||||||
enableCache | boolean | false | 否 | 开启 Http 缓存 | ||||||||||||||||||||
enableHttpDNS | boolean | false | 否 | 是否开启 HttpDNS 服务。如开启,需要同时填入 httpDNSServiceId 。 | ||||||||||||||||||||
httpDNSServiceId | string | 否 | HttpDNS 服务商 Id。 | |||||||||||||||||||||
enableChunked | boolean | false | 否 | 开启 transfer-encoding chunked。 | ||||||||||||||||||||
forceCellularNetwork | boolean | false | 否 | 强制使用蜂窝网络发送请求 | ||||||||||||||||||||
redirect | string | follow | 否 | 重定向拦截策略。(目前安卓、iOS、开发者工具已支持,PC端将在后续支持) | ||||||||||||||||||||
| ||||||||||||||||||||||||
success | function | 否 | 接口调用成功的回调函数 | |||||||||||||||||||||
fail | function | 否 | 接口调用失败的回调函数 | |||||||||||||||||||||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
# object.success 回调函数
# 参数
# Object res
属性 | 类型 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data | string/Object/Arraybuffer | 开发者服务器返回的数据 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
statusCode | number | 开发者服务器返回的 HTTP 状态码 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
header | Object | 开发者服务器返回的 HTTP Response Header | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cookies | Array.<string> | 开发者服务器返回的 cookies,格式为字符串数组 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
profile | Object | 网络请求过程中一些调试信息,查看详细说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exception | Object | 网络请求过程中的一些异常信息,例如httpdns重试等 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useHttpDNS | boolean | 最终请求是否使用了HttpDNS(仅当enableHttpDNS传true时返回此字段) |
# object.fail 回调函数
# 参数
# Object err
属性 | 类型 | 说明 |
errMsg | String | 错误信息 |
errno | Number | errno 错误码,错误码的详细说明参考 Errno错误码 |
# 返回值
# RequestTask
请求任务对象
# data 参数说明
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
- 对于
GET
方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...
) - 对于
POST
方法且header['content-type']
为application/json
的数据,会对数据进行 JSON 序列化 - 对于
POST
方法且header['content-type']
为application/x-www-form-urlencoded
的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
# useHighPerformanceMode 高性能模式说明
在该模式下,框架将会采用全新的网络请求模块,默认支持 HTTP3,可以提升小游戏的网络请求性能。有以下注意事项:
- 除声明了
enableChunked
后会走 HTTP1 以外,均会自动开启 HTTP2/HTTP3 等优化能力,enableQuic
、enableHttp2
参数将会强制开启。建议开发者在后台服务也开启对应能力以获得更好的效果。 - 暂仅支持 Android,iOS/PC 端设置该参数后会使用原 request 模块。iOS 会在后续支持该参数。
- 暂不支持 forceCellularNetwork 参数。
- 暂不支持 HttpDNS 能力。
- 开启
enableProfile
后,返回的 profile 字段部分信息缺失,会被缺省值代替。缺失部分包括 redirectStart、redirectEnd、rtt、estimate_nettype、httpRttEstimate、transportRttEstimate、downstreamThroughputKbpsEstimate、throughputKbps、peerIP、port。
# 示例代码
tap.request({
url: 'example.php', //仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})