目录

请求任务

接口声明

在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()

中断请求任务。

[h2]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))
    }
})

[h2]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))
})

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

描述

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

参数

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

示例代码

this.request_task.offProgressUpdate()

[h2]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))
})

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

描述

取消监听 HTTP Response Header 事件。

参数

HTTP Response Header 事件的回调函数。

示例代码

this.request_task.offHeadersReceived()

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

描述

中断请求任务。

示例代码

this.request_task.abort()

安全要求

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