WebResourceResponse是Web组件中表示HTTP响应并允许自定义网页资源响应的类。它在onHttpErrorReceive等事件中向应用提供服务器返回响应的状态码、状态描述、响应头、响应数据、编码、MIME类型等信息;在资源请求拦截场景中允许应用自定义响应的状态码、状态描述、响应头、响应数据、编码、MIME类型及数据就绪状态,从而由应用接管特定资源的返回内容。示例代码参考onHttpErrorReceive事件。
该组件从API version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
本Class从API version 8开始支持。
示例效果请以真机运行为准。
constructor()
WebResourceResponse的构造函数。用于创建HTTP响应对象,常用于资源请求拦截场景中自定义响应内容。
系统能力: SystemCapability.Web.Webview.Core
getReasonMessage(): string
获取资源响应的状态码描述。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| string | 返回资源响应的状态码描述,如'OK'、'Not Found'等。 |
getResponseCode(): number
获取资源响应的状态码。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| number | 返回资源响应的状态码,如200表示成功,404表示未找到。 |
getResponseData(): string
获取资源响应数据。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| string | 返回资源响应数据,为HTML格式的字符串内容。 |
getResponseEncoding(): string
获取资源响应的编码。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| string | 返回资源响应的编码,如'utf-8'、'gbk'等字符集编码。 |
getResponseHeader() : Array<Header>
获取资源响应头。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| Array<Header> | 返回资源响应头。 |
getResponseMimeType(): string
获取资源响应的媒体(MIME)类型。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| string | 返回资源响应的媒体(MIME)类型,如'text/html'、'application/json'等。 |
getResponseDataEx(): string | number | ArrayBuffer | Resource | undefined
获取资源响应数据,支持多种数据类型。与getResponseData相比,该方法支持返回number(文件句柄)、ArrayBuffer(二进制数据)、Resource($rawfile资源)等多种类型,建议在需要灵活数据类型支持时优先使用。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| string | number | ArrayBuffer | Resource | undefined | string返回HTML格式的字符串。 number返回文件句柄。 ArrayBuffer返回二进制数据。 Resource返回$rawfile资源。 如果没有可用数据,返回undefined。 |
getResponseIsReady(): boolean
获取响应数据是否已准备就绪。
系统能力: SystemCapability.Web.Webview.Core
返回值:
| 类型 | 说明 |
|---|---|
| boolean | true表示响应数据已准备好,false表示未准备好。 |
setResponseData(data: string | number | Resource | ArrayBuffer): void
设置资源响应数据。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | string | number | Resource | ArrayBuffer11+ | 是 | 要设置的资源响应数据。string表示HTML格式的字符串。number表示文件句柄,此句柄由系统的Web组件负责关闭。Resource表示应用rawfile目录下文件资源。ArrayBuffer表示资源的原始二进制数据。 |
setResponseEncoding(encoding: string): void
设置资源响应的编码。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| encoding | string | 是 | 要设置的资源响应的编码。编码格式需要与响应数据的实际编码保持一致,编码格式会影响浏览器或客户端对响应内容的解析和展示。 |
setResponseMimeType(mimeType: string): void
设置资源响应的媒体(MIME)类型。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mimeType | string | 是 | 要设置的资源响应的媒体(MIME)类型。常见的MIME类型包括:text/html(HTML文档)、application/json(JSON数据)、image/png(PNG图片)等。 |
setReasonMessage(reason: string): void
设置资源响应的状态码描述。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| reason | string | 是 | 要设置的资源响应的状态码描述。状态码描述是对状态码的文本说明,通常与状态码对应使用,例如状态码为200时描述可设为“OK”,状态码为404时描述可设为“Not Found”。该描述会包含在HTTP响应中,便于客户端或开发者了解响应结果。 |
setResponseHeader(header: Array<Header>): void
设置资源响应头。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| header | Array<Header> | 是 | 要设置的资源响应头。响应头用于传递HTTP协议头信息,例如设置“Cache-Control”控制缓存策略,设置“Access-Control-Allow-Origin”实现跨域访问,设置“Content-Type”指定内容类型。设置响应头会影响浏览器或客户端对资源的处理方式。 |
setResponseCode(code: number): void
设置资源响应的状态码。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| code | number | 是 | 要设置的资源响应的状态码。如果该资源请求失败或响应状态为错误状态,请参考@ohos.web.netErrorList设置相应错误码,避免设置错误码为 ERR_IO_PENDING,设置为该错误码可能会导致XMLHttpRequest同步请求阻塞。 |
setResponseIsReady(IsReady: boolean): void
设置资源响应数据是否已经就绪。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| IsReady | boolean | 是 | 资源响应数据是否已经就绪。 true表示资源响应数据已经就绪,false表示资源响应数据未就绪。 如果数据是异步提供,需要显式设置为false。设置为非法值如null,undefined或者不设置都会被认为数据已经准备好。 |