响应 (Response)
Response 类表示通过 fetch() 方法发起的网络请求返回的响应结果。
它提供了访问响应体(body)、头部(headers)、状态码、MIME 类型、以及服务器返回的 Cookies 的接口。
在 Scripting app 中,Response 的设计基于标准 Fetch API,但进行了原生扩展,支持:
- 原生级 Cookie 访问与解析
- 二进制数据 (
Data) 支持 - 兼容 WHATWG 的流式响应
body(ReadableStream<Uint8Array>) - 零拷贝的
dataStream(ReadableStream<Data>)——以原生Data流式读取响应体 - 响应的 MIME 类型、编码信息与预期长度
- 完整兼容标准 Web Fetch 行为
定义
属性说明
方法说明
json(): Promise<any>
将响应体解析为 JSON 对象。
示例
text(): Promise<string>
将响应体读取为字符串。 默认使用 UTF-8 编码,若服务器返回了编码信息则自动识别。
示例
data(): Promise<Data>
将响应体读取为二进制数据对象 Data,适合文件下载、图片处理、或转换为 Base64。
示例
bytes(): Promise<Uint8Array>
将响应体读取为字节数组。
示例
arrayBuffer(): Promise<ArrayBuffer>
将响应体读取为 ArrayBuffer,适合进行底层二进制操作。
示例
dataStream: ReadableStream<Data>
以原生 Data 块流式读取响应体。这是零拷贝的快路径:当你以 Data 形式处理数据(例如逐块写入文件)时,应优先使用它而非 body——body 会把每个块转换为 Uint8Array。响应体只能被消费一次,因此读取 dataStream 后,body 与各读取方法(data()、json() 等)将不可再用。
示例
formData(): Promise<FormData>
将响应体解析为 FormData(适用于 multipart/form-data 类型的响应)。
示例
Cookies 支持
cookies: Cookie[]
Scripting 的 Response 支持直接访问服务器返回的 Set-Cookie 信息。
返回值为一个 Cookie 对象数组,每个元素包含完整的 Cookie 元数据。
Cookie 类型定义
示例:读取响应中的 Cookies
示例:手动管理 Cookie(跨请求复用)
默认情况下,Scripting 的 fetch() 不会自动存储或携带 Cookie。
如果希望在多次请求中复用 Cookie,可以手动拼接 Cookie 头:
这种方式让开发者能够像浏览器开发者工具一样 完全掌控 Cookie 的发送与存储。
与其他类的关系
使用示例
示例 1:处理 JSON API 响应
示例 2:下载文件并保存
示例 3:读取服务器返回的 Cookies
示例 4:跨请求手动复用 Cookies
示例 5:读取响应的元信息
小结
Response 是 Scripting 网络请求体系中最核心的组成部分之一,具有以下特性:
- 完整兼容标准 Fetch API 行为
- 新增 原生 Cookie 访问与控制 能力
- 支持
Data类型的 二进制数据处理 - 支持响应流式读取、MIME 类型、编码与长度信息
- 可与
Request、Headers、FormData、AbortController等类型无缝配合
