智能客服
你问我答,随时在线为你解决问题
在manifest.json文件的 features属性中增加如下配置。
{"name": "system.requesttask"} 在调用接口页面的<script>部分增加如下配置。
import requesttask from '@system.requesttask'
或
var requesttask = require("@system.requesttask") 限制条件 | 说明 |
|---|---|
适用终端 | 手机、平板 |
适用区域 | 全球 |
接口 | 描述 |
|---|---|
创建一个网络请求,每次调用成功将返回一个新的RequestTask对象。 | |
监听请求进度变化事件。 | |
取消监听请求进度变化事件。 | |
监听 HTTP Response Header 事件。 | |
取消监听 HTTP Response Header 事件。 | |
中断请求任务。 |
描述
创建一个网络请求,每次成功调用requesttask.request将返回一个新的RequestTask对象。
参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
url | string | 是 | 资源url。 |
data | string/object/arraybuffer | 否 | 请求的参数,可以是字符串,或者是 js 对象、arraybuffer 对象。请参见“data与Content-Type关系说明”。 |
header | object | 否 | 请求的header,会将其所有属性设置到请求的header部分。从1073版本开始,华为快应用引擎会在header中强制增加Referer,如果您已经设置,则会被覆盖。
示例:{"Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,en-US;q=0.8,en;q=0.6","Referer":"https://quickapp.cn/com.abc.quickapp/1000/page-frame.html"} |
method | string | 否 | 默认为 GET,可以是:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT。 |
responseType | string | 否 | 支持返回类型是text、json、file、arraybuffer,默认会根据服务器返回header中的Content-Type确定返回类型,详细请参见“success返回值”。 |
timeout | number | 否 | 超时时间,指连接超时时间,非读写超时时间。单位ms,默认值为10000。 |
success | function | 否 | 成功返回的回调函数。 |
fail | function | 否 | 失败的回调函数。 |
complete | function | 否 | 结束的回调函数(调用成功、失败都会执行)。 |
data与Content-Type关系说明
data | Content-Type | 说明 |
|---|---|---|
String | 不设置 | Content-Type 默认为 text/plain,data 值作为请求的 body。 |
String | 任意Type | data 值作为请求的 body。 |
Object | 不设置 | Content-Type 默认为 application/x-www-form-urlencoded,data 按照 url 规则进行 encode 拼接作为请求的 body。 |
Object | application/x-www-form-urlencoded | data 按照 url 规则进行 encode 拼接作为请求的 body。 |
Object | application/x-www-form-urlencoded之外的任意type | 将 data 转为字符串作为请求的 body。 |
ArrayBuffer | 不设置 | Content-Type 默认为 application/octet-stream,data 值作为请求的 body。 |
ArrayBuffer | 任意Type | data 值作为请求的 body。 |
success返回值
参数名 | 类型 | 说明 |
|---|---|---|
statusCode | number | 服务器状态code。 |
statusText | string | 服务器状态描述。 |
data | string/object/arraybuffer/json | |
header | object | 服务器response的所有header。 |
responseType与success中data关系说明
responseType | data | 说明 |
|---|---|---|
无 | string | 服务器返回的 header 中 type 是 text/*或 application/json、application/javascript、application/xml,值是文本内容,否则是存储的临时文件的 uri,临时文件如果是图片或者视频内容,可以将图片设置到 image 或 video 控件上显示。 |
text | string | 返回普通文本。 |
json | object | 返回 js 对象。 |
file | string | 返回存储的临时文件的 uri。 |
arraybuffer | arraybuffer | 返回 ArrayBuffer 对象。 |
示例代码
this.request_task = requesttask.request({
url: 'https://httpbin.org/anything',
method:'POST',
data:"12313213213212",
success(res) {
console.log("Request success. resp = " + JSON.stringify(res))
},
fail(res) {
console.log("Request fail. resp = " + JSON.stringify(res))
}
}) 描述
监听请求进度变化事件。
只在post、put、connect方法下生效。
参数
请求进度变化事件的回调函数。
callback返回参数
Object类型。
属性 | 类型 | 说明 |
|---|---|---|
progress | number | 发送请求进度百分比。 |
totalBytesSent | number | 已经发送的数据长度,单位 Bytes。 |
totalBytesExpectedToSend | number | 预期需要发送的数据总长度,单位 Bytes。 |
示例代码
this.request_task.onProgressUpdate(res => {
console.log("Request progress update = " + JSON.stringify(res))
}) 描述
取消监听请求进度变化事件。
参数
请求进度变化事件的回调函数。
示例代码
this.request_task.offProgressUpdate()
描述
监听 HTTP Response Header 事件。在请求成功回调之前触发。
参数
HTTP Response Header 事件的回调函数。
callback返回参数
object类型。
属性 | 类型 | 说明 |
|---|---|---|
header | object | 开发者服务器返回的 HTTP Response Header。 |
示例代码
this.request_task.onHeadersReceived(res => {
console.log("Request onHeaderReceived = " + JSON.stringify(res))
}) 描述
取消监听 HTTP Response Header 事件。
参数
HTTP Response Header 事件的回调函数。
示例代码
this.request_task.offHeadersReceived()
描述
中断请求任务。
示例代码
this.request_task.abort()
对于HTTPS请求,对证书要求如下:
从安全性考虑,建议也支持TLS1.3。1200及以上版本在配置加密套件时排除不安全算法:TEA/DES/DESX/DES40/RC2/RC4/RIPEMD/NULL/SHA0/MD2/MD4/MD5/ANON/TLS_EMPTY_RENEGOTIATION_INFO_SCSV;1200以下版本在配置加密套件时排除不安全算法:TEA/DES/DESX/DES40/RC2/RC4/RIPEMD/eNULL/aNULL/NULL/SHA0/MD2/MD4/MD5/ANON/TLS_EMPTY_RENEGOTIATION_INFO_SCSV。部分CA可能不被操作系统信任,请开发者在选择证书时注意操作系统的相关通告。