文档管理中心
API参考快应用API网络访问请求任务

请求任务

接口声明

在manifest.json文件的 features属性中增加如下配置。

{"name": "system.requesttask"}

导入模块

在调用接口页面的<script>部分增加如下配置。

import requesttask from '@system.requesttask'

var requesttask = require("@system.requesttask")

使用限制

展开

限制条件

说明

适用终端

手机、平板

适用区域

全球

接口定义

展开

接口

描述

requesttask.request(OBJECT)

创建一个网络请求,每次调用成功将返回一个新的RequestTask对象。

requestTask.onProgressUpdate(function callback)

监听请求进度变化事件。

requestTask.offProgressUpdate(function callback)

取消监听请求进度变化事件。

requestTask.onHeadersReceived(function callback)

监听 HTTP Response Header 事件。

requestTask.offHeadersReceived(OBJECT)

取消监听 HTTP Response Header 事件。

requestTask.abort()

中断请求任务。

requesttask.request(OBJECT) (1078+,非厂商联盟规范)

描述

创建一个网络请求,每次成功调用requesttask.request将返回一个新的RequestTask对象。

参数

展开

参数

类型

是否必填

说明

url

string

资源url。

data

string/object/arraybuffer

请求的参数,可以是字符串,或者是 js 对象、arraybuffer 对象。请参见“data与Content-Type关系说明”。

header

object

请求的header,会将其所有属性设置到请求的header部分。从1073版本开始,华为快应用引擎会在header中强制增加Referer,如果您已经设置,则会被覆盖。

  • 现网引擎Referer:"https://quickapp.cn/[快应用包名]/[快应用版本号]/page-frame.html"
  • 加载器引擎Referer:"https://quickapp.cn/dev/[快应用包名]/[快应用版本号]/page-frame.html"

示例:{"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

请参见“responseType与success中data关系说明”。

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))
    }
})

requestTask.onProgressUpdate(function callback) (1078+,非厂商联盟规范)

描述

监听请求进度变化事件。

只在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))
})

requestTask.offProgressUpdate(function callback) (1078+,非厂商联盟规范)

描述

取消监听请求进度变化事件。

参数

请求进度变化事件的回调函数。

示例代码

this.request_task.offProgressUpdate()

requestTask.onHeadersReceived(function callback) (1078+,非厂商联盟规范)

描述

监听 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))
})

requestTask.offHeadersReceived(OBJECT) (1078+,非厂商联盟规范)

描述

取消监听 HTTP Response Header 事件。

参数

HTTP Response Header 事件的回调函数。

示例代码

this.request_task.offHeadersReceived()

requestTask.abort() (1078+,非厂商联盟规范)

描述

中断请求任务。

示例代码

this.request_task.abort()

安全要求

对于HTTPS请求,对证书要求如下:

  • HTTPS证书必须有效。证书必须被系统信任,不支持自签名证书,部署SSL证书的网站域名必须与证书颁发的域名一致,证书必须在有效期内。
  • 从1200版本开始,TLS必须支持1.2及以上版本,请确保HTTPS服务器的TLS版本能够同时支持TLS1.2及以下版本。

    从安全性考虑,建议也支持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可能不被操作系统信任,请开发者在选择证书时注意操作系统的相关通告。

在 API参考 中进行搜索
请输入您想要搜索的关键词